Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。
无法调用“org.openqa.selenium.WebDriver.findElement;端到端测试
我正在尝试在 IntelliJ 中使用 Selenium 对登录功能进行端到端测试。但是,我在设置阶段遇到了问题。每当我执行代码时,我都会始终如一地
我在单击完整元素的隐藏按钮时遇到问题? 我在单击完整元素的隐藏按钮时遇到问题? <a class="score-button hidden-xs hidden-sm" data-ux-module="score_bootstrap/Components/Button" data-ux-state="loaded" href="https://testwebsite.com/corporate/careers/jobs">Search all jobs</a> 这是我的测试,尽管这次是我的最新版本,使用的是 xpath,无论如何我从来都不是使用它的忠实粉丝。但 CSS 选择器也不起作用。 @And("the user clicks on Search all jobs") public void the_user_clicks_on() { WebDriverWait longWait = new WebDriverWait(driver, Duration.ofSeconds(20)); // Increase the wait time WebElement submenuElement = longWait.until(ExpectedConditions.elementToBeClickable( By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]"))); submenuElement.click(); } 我收到的错误: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: //a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')] (tried for 20 second(s) with 500 milliseconds interval) 错误很明显,它找不到该元素,但是如何找到该元素是否嵌套在子菜单中? 我在这里处理的是隐藏按钮还是什么? 单击此按钮的最佳和最干净的方法是什么? 我使用了你自己的代码,它在我的机器上运行良好。奇怪的是你看到的是org.openqa.selenium.TimeoutException。 无论如何,以下是我尝试过的方法并且有效: public static void main(String[] args) throws InterruptedException { WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("https://risk.lexisnexis.com/corporate/careers"); WebDriverWait longWait = new WebDriverWait(driver, Duration.ofSeconds(20)); // Increase the wait time WebElement submenuElement = longWait.until(ExpectedConditions.elementToBeClickable( By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]"))); submenuElement.click(); } 由于 WebDriverWait 不适合您,您可以尝试其他选项,请参阅下文。 使用Actions类: import org.openqa.selenium.interactions.Actions; ... WebElement submenuElement = driver.findElement(By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]")); Actions action = new Actions(driver); action.click(submenuElement).perform(); 作为最后的手段,您可以使用 JavaScriptExecutor 单击元素,如下所示: 注意: JavaScriptExecutor 不像 selenium 的 click() 方法那样模拟人类行为。这没有达到测试自动化的全部目的。当 selenium 无法执行点击时,才应该使用 JSE 作为最后的手段。 import org.openqa.selenium.JavascriptExecutor; ... Thread.sleep(5000); WebElement submenuElement = driver.findElement(By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]")); ((JavascriptExecutor)driver).executeScript("arguments[0].click();", submenuElement); 所以这是我的解决方案,花了一段时间,它与上面的建议类似,但这个解决方案已经开始正确运行,我尝试了元素 ID,直到找到最佳组合并添加了 javascript 功能。 @And("the user clicks on Search all jobs") public void the_user_clicks_on() { // Create WebDriverWait instance WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); WebElement searchJobsButton = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("a.score-button[data-ux-module='score_bootstrap/Components/Button']"))); // Scroll the button into view JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].scrollIntoView(true);", searchJobsButton); // Use JavaScript to perform the click action executor.executeScript("arguments[0].click();", searchJobsButton); }
大家,在我的学校,我有一个项目,我编写 JavaScript 来自动测试页面 我使用 webdriver 发短信 但我有一个错误:TypeError: loginPageInstance.inputUsername(...).inputPassword i...
Selenium - Powershell - 查找 css 样式
我有一个网络用户界面,上面有一个视频源,有时需要一两秒钟才能加载。我确定特定网络元素的唯一区别如下: 未加载: 我有一个网络用户界面,上面有一个视频源,有时需要一两秒钟才能加载。我确定特定网络元素的唯一区别如下: 未加载: <canvas id="canvasplayer_0" style="position: absolute; display: none; top: 0px; left: 0px; width: 448px; height: 335px;" width="704" height="480"></canvas> 已加载: <canvas id="canvasplayer_0" style="position: absolute; display: block; top: 0px; left: 0px; width: 448px; height: 335px;" width="704" height="480"></canvas> 注意,区别在于,在 feed 加载之前,“display”为“none”,加载后,“display”为“block”。 查询现有的特定 ID 很容易。然而,我想弄清楚的是,如何通过$wait.Until查询该id,但等待显示从无变为阻止。我认为它必须通过 CSS 选择器来完成,但我没有找到任何好的方法。 您可以使用 CSS 选择器, #canvasplayer_0[style*='display: block'] 对 #canvasplayer_0[style*='display: none']
打印下拉元素值的所有隐藏定位器并一一选择react bootstrap
我们有 React Bootstrap 应用程序,它具有下拉字段,尝试获取 Xpath 并选择下拉值,但是当选定的下拉值 html 不显示定位器或它具有隐藏元素定位器...
如何使用 Selenium 和 Python 关闭“登录 Google”弹出窗口
当我进入google网站时,会出现这个小登录窗口: 我尝试关闭的选项卡 我试图使用 selenium 和 python 来消除它 这是我正在使用的代码: 来自硒进口
如何在我的计算机上安装 Selenium Chrome 驱动程序?
要使用 Selenium 编写机器人,我需要 Google 驱动程序,但似乎没有适用于较新版本 Chrome 的驱动程序。我应该怎么办? 我尝试安装旧版本的 Chrom...
在 ruby on Rails 应用程序中,我有一个“主屏幕”haml,其中带有一个添加按钮,可将用户带到“addscreen”按钮。我已经使用 Caybara 和 Selenium 创建了一个测试,检查是否...
无法使用selenium pthon从HTML页面获取多个类下的标签值
我想从以下 HTML 中提取“xms” ... 我想从以下 HTML 中提取“xms” <div class="ki-kullaniciadi member-info" member-info-memberid="12789" member-info-forumid="2613"> <a href="/profil/12789"> <b>xms</b> </a> </div> 我已经尝试过了 def scrapecomments2(url): tic = time.perf_counter() wait = WebDriverWait(wd,20) wd.get(url) data2=[] for comment in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.ki-kullaniciadi.member-info b"))): data2.append(comment.text) toc = time.perf_counter() print(data2) return data2 包括许多组合,例如 for comment in wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, "ki-kullaniciadi b"))): data2.append(comment.text) for comment in wait.until(EC.presence_of_all_elements_located((By.XPATH,"//div[@class='ki-kullaniciadi']/a/b"))): data2.append(comment.text) 它总是回来 TimeoutException Traceback (most recent call last) <ipython-input-8-e105fdffd5ff> in <cell line: 1>() ----> 1 scrapev2=scrapecomments2('https://forum.donanimhaber.com/tesla-model-y-kullananlar-kulubu-2023--155488676-1151') 1 frames /usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py in until(self, method, message) 103 if time.monotonic() > end_time: 104 break --> 105 raise TimeoutException(message, screen, stacktrace) 106 107 def until_not(self, method: Callable[[D], T], message: str = "") -> Union[T, Literal[True]]: TimeoutException: Message: 但是 for comment in wait.until(EC.presence_of_all_elements_located((By.TAG_NAME,"b"))): data2.append(comment.text) 有效,因此看起来页面加载不存在问题。它返回页面中带有标签 b 的每个值,但我只想要“ki-kullaniciadi member-info”类上的值。 for comment in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".ki-kullaniciadi .member-info a b")))
Python/网页抓取 |如何使用selenium从不同网站获取信息并编译excel文件?
因此,我很感兴趣地编写了一些代码,可以抓取 Clash Royale 网站,根据游戏中的不同部落提取信息,然后将其编译到 Excel 电子表格中。我是……
这是一个selenium java项目,使用Intellij Idea来运行测试自动化场景。它最后生成在线黄瓜报告。但正如你在图片中看到的,不幸的是,它梳理了......
我在单击完整元素的隐藏按钮时遇到问题? 我在单击完整元素的隐藏按钮时遇到问题? <a class="score-button hidden-xs hidden-sm" data-ux-module="score_bootstrap/Components/Button" data-ux-state="loaded" href="https://testwebsite.com/corporate/careers/jobs">Search all jobs</a> 这是我的测试,尽管这次是我的最新版本,使用的是 xpath,无论如何我从来都不是使用它的忠实粉丝。但 CSS 选择器也不起作用。 @And("the user clicks on Search all jobs") public void the_user_clicks_on() { WebDriverWait longWait = new WebDriverWait(driver, Duration.ofSeconds(20)); // Increase the wait time WebElement submenuElement = longWait.until(ExpectedConditions.elementToBeClickable( By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]"))); submenuElement.click(); } 我收到的错误: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: //a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')] (tried for 20 second(s) with 500 milliseconds interval) 错误很明显,它找不到该元素,但是如何找到该元素是否嵌套在子菜单中? 我在这里处理的是隐藏按钮还是什么? 单击此按钮的最佳和最干净的方法是什么? 我使用了你自己的代码,它在我的机器上运行良好。奇怪的是你看到的是org.openqa.selenium.TimeoutException。 无论如何,以下是我尝试过的方法并且有效: public static void main(String[] args) throws InterruptedException { WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("https://risk.lexisnexis.com/corporate/careers"); WebDriverWait longWait = new WebDriverWait(driver, Duration.ofSeconds(20)); // Increase the wait time WebElement submenuElement = longWait.until(ExpectedConditions.elementToBeClickable( By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]"))); submenuElement.click(); } 由于 WebDriverWait 不适合您,您可以尝试其他选项,请参阅下文。 使用Actions类: import org.openqa.selenium.interactions.Actions; ... WebElement submenuElement = driver.findElement(By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]")); Actions action = new Actions(driver); action.click(submenuElement).perform(); 作为最后的手段,您可以 JavaScriptExecutor 单击元素,如下所示: import org.openqa.selenium.JavascriptExecutor; ... Thread.sleep(5000); WebElement submenuElement = driver.findElement(By.xpath("//a[contains(@class, 'score-button') and contains(@href, 'corporate/careers/jobs') and contains(text(), 'Search all jobs')]")); ((JavascriptExecutor)driver).executeScript("arguments[0].click();", submenuElement);
2024:chrome 无法访问 python selenium
我想用我的设置打开一个chrome窗口并通过selenium连接到它。 我启动 chrome,然后尝试连接,但收到 selenium.common.exceptions.WebDriverException: Message: Unknown error: c...
我目前正在 python 上使用 Selenium,但遇到了一个问题。现在,我正在亚马逊上寻找产品以获得价格。在我寻找一个之后,我确定了一个特定的...
我开发了一个小型应用程序,可以自动执行内联网上的某些任务。为了方便与没有 Python 的用户共享,我将此应用程序导出为可执行文件(...
seleniumbase 启动浏览器,打开页面,然后在搜索框中输入查询。然后循环跟踪链接。然后在循环的每次迭代的每个链接中,尝试将 h3 拉出...
Chromedriver 124 仅适用于 Beta,并且出现错误:“无法终止进程”
我的 Chrome 浏览器已更新至版本 124。 但该版本(稳定版)的 chrome 驱动程序尚不可用。 我下载了测试版。 测试似乎有效,但在测试结束时,...
这是我的问题。我正在尝试从币安网站检索各种值(价格)。我已经设法从“orderbook-list-container”中提取不同的类。然而,它并没有...
在 python 中抓取 rotowire.com 玩家数据
我正在尝试从此页面获取/抓取击球统计表: https://www.rotowire.com/baseball/player/cj-abrams-16042 进一步查看该页面,我认为所有表格可能都相同...
“Chrome 用于测试”的 AutoSelectCertificateForUrls
这是我第一次在这里发帖;但是,我从论坛中学到了很多宝贵的知识。希望专家对我下面的问题给予一些建议。 我的 Python 程序设置为