WebDriver是一个用于控制Web浏览器的API,模仿真实用户。它主要用于自动化测试。 WebDriver具有多种语言绑定和驱动程序(允许控制各种浏览器)。如果您的问题特定于其中一个,请确保还包含相应的标记。
使用带有selenium的python出现问题并出现错误:net::ERR_HTTP2_PROTOCOL_ERROR
我有一台 MacBook,我正在用 Python 运行代码。我在执行时从未遇到过任何问题。 上个月,我买了一台新的 MacBook“MacBook Air (M3)”并运行了相同的代码。 关于新公司...
我正在使用 Sauce Labs 编写一些功能测试(使用 Selenium + Webdriver + Nodejs)。我的一个测试用例如下所示: it('不应该有任何错误', function(done) {
我正在搜索并尝试很多方法来更改使用 webdriver 生成的 PDF 的页面大小。 我已经阅读并研究了以下链接 https://w3c.github.io/webdriver/#print-page https://webd...
在使用 webdriveIO 的混合移动应用程序自动化中将上下文切换到 Web 视图失败
我正在尝试为我的应用程序设置 WebView 自动化,该应用程序作为混合应用程序在 Android 和 iOS 设备中运行(用 React Native0 编写) 运行我的自动化代码时 我正在尝试切换...
我对使用 selenium 和 Python 有点陌生。下面是我尝试运行来下载多个文件的代码。 从硒导入网络驱动程序 驱动程序 = webdriver.Chrome(executable_path=r'C:\
我们使用Selenium-WebDriver+ C# +NUnit 框架。最近我们已将 Selenium-WebDriver 4.10 迁移到 4.17。 当我们尝试在 NUnit 框架中执行脚本时,出现以下错误。 我们
我正在尝试使用 java-Selenium TestNG 运行自动化脚本。 为了打开浏览器,我调用了 chrome 驱动程序。即使停止脚本后,chrome 驱动程序仍在后台运行...
Selenium 启动的 ChromeDriver 保持在后台运行
我无法完全删除项目,因为 chromedriver 实例正在后台运行,即使没有代码正在执行。 请看下图。 我的错误...
我在这个Java问题上遇到了同样的问题(没有解决,顺便说一句),但是在C#上: 使用 iFrame 打开新窗口后测试用例运行速度非常慢 我要切换到的 iframe: 我在这个 Java 问题上遇到了同样的问题(未解决,顺便说一句),但在 C# 上: 使用 iFrame 打开新窗口后测试用例运行速度非常慢 我要切换到的 iframe: <iframe id="iframeXYZ" width="100%" height="2280px" frameborder="0" src="/Pages/Abc.html"> </iframe> 选择此 iframe 的代码: var frameXYZ = driver.FindElement(By.Id("IdOfMyFrame")); driver.SwitchTo().Frame(frameXYZ); //I do my stuff here, then return to the main frame driver.SwitchTo().DefaultContent(); 该类没有任何Thread.Sleep,甚至没有显式/隐式等待。 我遇到了这个信息,但即使使用 iframe 的 ID,它也没有帮助: webdriver.switchTo().frame() 方法可以采用名称或 ID。它会 必须在 DOM(文档对象模型)中搜索名称或 id。你可以 页面上有多个具有相同名称属性的内容。所以使用id 属性往往会更快。但是,如果计算机运行浏览器 速度很慢并且/或者 DOM 中有很多属性,可能需要花费一些时间 同时切换帧。 还有一个 webdriver.switchTo().frame() 方法需要一个索引。 所以如果你知道它是第 1 帧你可以使用 webdriver.switchTo().frame(1)。但如果帧的顺序可能会改变 这没有帮助。您还可以使用 WebElement 来切换框架。所以 有时 webdriver.findElement() 方法会更快地找到框架 切换到这个 WebElement 会更快。 这确实需要更多地优化代码以使其更快。 字体:https://grokbase.com/t/gg/webdriver/15bh2n599f/switching- Between-frames-is-very-slow 我想知道这个问题是否与Chrome浏览器本身有关,以及是否没有最终的解决方案。 我使用Python并且可以阅读switch_to.frame()代码 运行的主代码行是 self._driver.execute(Command.SWITCH_TO_FRAME, {"id": frame_reference}) 所以减慢时间是尝试 find_element() 的时间 最快的代码是传入框架的WebElement driver.switch_to.frame( driver.find_element('//*[@name="yourframename"]') ) 完整代码位于.../.venv/lib/python3.11/site-packages/selenium/webdriver/remote/switch_to.py def frame(self, frame_reference: Union[str, int, WebElement]) -> None: if isinstance(frame_reference, str): try: frame_reference = self._driver.find_element(By.ID, frame_reference) except NoSuchElementException: try: frame_reference = self._driver.find_element(By.NAME, frame_reference) except NoSuchElementException as exc: raise NoSuchFrameException(frame_reference) from exc self._driver.execute(Command.SWITCH_TO_FRAME, {"id": frame_reference})
Selenium 和未检测到的 chromedriver 的代理数据使用过多
我正在 Windows 10 64 位上使用 Python 3.12.4 以及 Selenium 和 unDetected-chromedriver 开发一个机器人。机器人登录网站并导航到特定页面,而不执行任何进一步操作
WebDriverError:未创建会话:自从在 docker 环境中从 chrome v127 升级到 v128(或更高版本)以来,“DevToolsActivePort 文件不存在”
我正在尝试在 docker 容器中针对最新的 chrome 版本运行 webdriver.io 测试。 当使用带有 chrome 127 的 docker 映像时,我的测试运行良好。将 chrome 升级到 v128 或更高版本后,我...
我想通过selenium连接到socks5代理,但它不想接受登录名和密码,请帮助我解决这个问题。 我的代码: System.setProperty("webdriver.
我们有一些 Selenium 测试(定义为 .NET 测试项目的一部分)在本地运行时运行良好,但在从 Azure DevOps 管道运行时运行不佳。我们目前怀疑有什么东西是替代的......
如何使用 selenium webdriver 将现有登录令牌用于电报网络
我正在尝试使用 selenium 读取来自 https://web.telegram.org 的电报消息。 当我在 Firefox 中打开 https://web.telegram.org 时,我已经登录了,但是当从 selenium 打开同一页面时
我正在尝试使用 Python 和 Selenium 从 Ultra Liquors 网站上抓取产品价格,但尽管 HTML 包含预期元素,但我无法检索价格。我的目标是...
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']";
当我点击 PDF 下载链接时,应该开始下载,但目前,pdf 在新选项卡中打开,并且有一个下载选项 目前我的配置: $chromeOption->addArguments([ &qu...
如何防止 Selenium 在新内容加载之前过快单击“显示更多”按钮?
我正在尝试使用 Selenium 从足球网站抓取数据,我需要多次单击“显示更多”按钮才能加载所有比赛。该按钮在加载过程中消失并且是
如何使用 Selenium 自动滚动到 DOM 中的特定部分?
我正在尝试使用 Selenium 滚动到网页上的特定部分并从该部分检索文本。 语境: 我正在使用一个网页,该网页通过 CSS 属性禁用文本突出显示...
无法创建selenium.webdriver.Chrome的子类
我刚刚接触 Python,想向 selenium.webdriver.Chrome 类添加一些额外的行为(我相信) 我想添加新行为 加载jQuery() 等待页面加载() ETC... 但看起来...