webdriver 相关问题

WebDriver是一个用于控制Web浏览器的API,模仿真实用户。它主要用于自动化测试。 WebDriver具有多种语言绑定和驱动程序(允许控制各种浏览器)。如果您的问题特定于其中一个,请确保还包含相应的标记。

Selenium WebDriver By.xpath 并不总是有效

信息: 我从配置文件中获取 fieldXpath,它是“//input[@id='signin_password']” HTML: 信息: 我从配置文件中得到fieldXpath,它是"//input[@id='signin_password']" HTML: <li><input type="password" name="signin[password]" id="signin_password" /></li> 有效:(但并非总是如此) 陷入困境... public void doAction(WebDriver driver) throws TestException { try { WebElement el = driver.findElement(By.xpath(fieldXpath)); el.clear(); el.sendKeys(fieldValue); } catch (Exception e) { throw new TestException(this.getClass().getSimpleName() + ": problem while doing action : " + toString()); } } 是否有解决方案可以使该代码与 XPath 一起使用? 我发现了问题...:selenium WebDriver StaleElementReferenceException *This may be caused because the page isn't loaded completely when the code starts or changes when the code is executed. You can either try to wait a little longer for the element or catch the StaleReferenceException and try again finding the div and the span.* 我的代码:(在每个字段之前调用这些函数) /** * Handle StaleElementReferenceException * @param elementXpath * @param timeToWaitInSec */ public void staleElementHandleByXpath(String elementXpath, int timeToWaitInSec) { int count = 0; while (count < 10) { try { WebElement slipperyElement = driver.findElement(By.xpath(elementXpath)); if (slipperyElement.isDisplayed()) { slipperyElement.click(); // may throw StaleElementReferenceException } count = count + 10; } catch (StaleElementReferenceException e) { count = count + 1; // try again } catch (ElementNotVisibleException e) { count = count + 10; // get out } catch (Exception e) { count = count + 10; // get out } finally { // wait X sec before doing the action driver.manage().timeouts().implicitlyWait(timeToWaitInSec, TimeUnit.SECONDS); } } } /** * Wait till the document is really ready * @param js * @param timeToWaitInSec */ public void waiTillDocumentReadyStateComplete(JavascriptExecutor js, int timeToWaitInSec) { Boolean ready = false; int count = 0; while (!ready && count < 10) { ready = (Boolean) js.executeScript("return document.readyState == 'complete';"); // wait X sec before doing the action driver.manage().timeouts().implicitlyWait(timeToWaitInSec, TimeUnit.SECONDS); count = count + 1; } } 使用单引号 ' 而不是 "。所以 String fieldXpath = "//input[@id='signin_password']";

回答 2 投票 0

如何禁用chromedriver中的内置PDF查看器?

当我点击 PDF 下载链接时,应该开始下载,但目前,pdf 在新选项卡中打开,并且有一个下载选项 目前我的配置: $chromeOption->addArguments([ &qu...

回答 1 投票 0

如何防止 Selenium 在新内容加载之前过快单击“显示更多”按钮?

我正在尝试使用 Selenium 从足球网站抓取数据,我需要多次单击“显示更多”按钮才能加载所有比赛。该按钮在加载过程中消失并且是

回答 1 投票 0

如何使用 Selenium 自动滚动到 DOM 中的特定部分?

我正在尝试使用 Selenium 滚动到网页上的特定部分并从该部分检索文本。 语境: 我正在使用一个网页,该网页通过 CSS 属性禁用文本突出显示...

回答 1 投票 0

无法创建selenium.webdriver.Chrome的子类

我刚刚接触 Python,想向 selenium.webdriver.Chrome 类添加一些额外的行为(我相信) 我想添加新行为 加载jQuery() 等待页面加载() ETC... 但看起来...

回答 1 投票 0

获取浏览器当前URL

在 Selenium Nodejs 中,如何获取正在测试的页面的当前 url(我的测试脚本运行时假设页面最初已被重定向)

回答 4 投票 0

使用selenium提取标题

我正在尝试使用 Selenium 从网站上抓取食谱标题,但我遇到了一个问题,我只能提取一些标题,而其他标题则返回空字符串。 我正在使用

回答 1 投票 0

与Playwright一起在异步代码中遇到NotImplementedError:了解原因并寻求解决方案

我在使用 Playwright 运行异步代码时遇到了 NotImplementedError。您能帮助我了解此错误的根本原因并提出可能的解决方案吗? 这是我的代码...

回答 1 投票 0

在 Rails 应用程序中使用 Selenium WebDriver 和 Capybara 时出错

我正在使用 Rails 6.1 和 ruby 2.6.5,并且正在为 Active Admin 新页面创建测试,我发现测试这个新页面的最佳方法是使用 gems Capybara、Webdrivers 和 Selenium-Webdrive ...

回答 1 投票 0

selenium 加载页面后获取当前网址

我在 Java 中使用 Selenium Webdriver。我想在单击“下一步”按钮从第 1 页移动到第 2 页后获取当前网址。这是我的代码: WebDriver 驱动程序 = 新的 FirefoxDriver...

回答 3 投票 0

Python seleniumbase 驱动程序在我的树莓派中无头启动,但我不想

我在 Windows 环境上使用 seleniumbase 来运行我的测试,而没有启用无头功能,但是当我将代码放在我的树莓派上并想要运行相同的测试时,驱动程序会切换到无头功能...

回答 2 投票 0

当我的浏览器在 Selenium 的控制下运行时,Google 拒绝我的登录尝试?

我正在尝试使用它来自动删除我的 YouTube 视频中的垃圾评论。 YouTube 目前仍然没有用于删除垃圾评论的 API。 我只想自动化 r...

回答 2 投票 0

使用selenium模块自动记录Twitter,无法定位元素错误

你好,我正在尝试构建一个程序,通过使用 selenium 模块的用户名和密码信息自动登录 twitter。我收到一个错误,基本上说它不能......

回答 3 投票 0

AttributeError:“WebDriver”对象没有属性“find_element_by_class_name”

我想提取这台机器的价格。 https://www.amazon.com/dp/B01N7GO468/ref=syn_sd_onsite_desktop_217?psc=1&spLa=

回答 1 投票 0

如何使用seleniumbase检查文本是否可见?

使用 seleniumbase 我只想检查某些文本是否可用。我只想获得一个布尔标志,指示文本可用(True)或不可用(False)。 seleniumbase 提供的方法似乎

回答 1 投票 0

当我不知道什么时候会弹出时,如何在Python中使用Selenium关闭弹出窗口?

我正在尝试从该网站抓取历史天气数据: https://www.worldweatheronline.com/taoyuan-weather-history/tai-wan/tw.aspx 使用此代码: driver.find_element_by_css_selector(...

回答 2 投票 0

使用 python 和 selenium 在文本框中输入值

我在使用 selenium 和 python 将值输入到文本框中时遇到一些问题。我尝试了很多方法,但都没有取得太大进展。 这就是网站 HTML ...

回答 1 投票 0

Selenium 通过 XPath 查找元素

我有三个具有相同按钮类和跨度类名称的元素。我想使用 xpath 来选择第二个跨度类,但我总是出错。 我用过: browser.find_element(By.XPATH, "...

回答 1 投票 0

selenium:超过 url 的最大重试次数

完整追溯: 回溯(最近一次调用最后一次): 文件“/home/webadmin/dev.taracares.com/src/app_payroll_reports/tests.py”,第 134 行,位于 test_mstnla_sums_incentives_tennessee_sum 整数(

回答 2 投票 0

Selenium Python css 选择器按类不起作用

我有 4 种方法来定位某个元素并想要单击它: DOM 是: 我通过四种方式定位这个元素: (通过.XPATH,... 我有 4 种方法来定位某个元素并想单击它: DOM 是: <div class="ui dropdown selection" tabindex="0"> 我通过四种方式定位这个元素: (By.XPATH, "//div[@class='ui dropdown selection']") (By.CSS_SELECTOR, "[class='ui dropdown selection']") (By.CSS_SELECTOR, ".ui dropdown selection") (By.CLASS_NAME, "ui dropdown selection") 我只是点击元素 方式 1 和 2 有效,测试正常 - 并且 len(element) 为 1 方式3和4不起作用:NoSuchElementException:消息:没有这样的元素:无法定位元素:{“method”:“css选择器”,“selector”:“.ui下拉选择”} - 和len(元素)是 0 (等待没有帮助,方式一、方式二根本不需要等待) 你能告诉我为什么方法3和方法4失败了吗? 当在 CSS 选择器中为同一标签使用多个类名时,它们必须用点而不是空格分隔。这是表达第三个的正确方式: (By.CSS_SELECTOR, ".ui.dropdown.selection") 或 (By.CSS_SELECTOR, "div.ui.dropdown.selection"). 对于第四个,你不能将 By.CLASS_NAME 与多个类名组件一起使用。您必须选择一个,但由于这可能不会为您提供唯一的选择器,因此您最好使用其他方法之一来形成选择器。 @迈克尔 (By.CSS_SELECTOR, ".ui.dropdown.selection") (By.CSS_SELECTOR, "div.ui.dropdown.selection") 两者都不起作用 - selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素 但请注意,只有 1 个元素,因为这有效: (By.XPATH, "//div[@class='ui dropdown selection']") 和len(element) = 1

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.