WebDriver Selenium API:当 Element 明显存在时,出现 ElementNotFoundErrorException!

2023-11-24

有时,在关闭 Javascript 的情况下在 WebDriver 上运行测试时,WebDriver 在找到某个元素并尝试单击它时会因 ElementNotFound 错误而崩溃。

然而,这个元素显然是存在的!

读完这篇文章后:http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_My_XPath_finds_elements_in_one_browser,_but_not_in_others._Wh

我得出的结论是,webdriver 一定不能等到网页加载完成。如何使用 Webdriver Wait 类?有人可以举个例子吗?


这个例子已发布在 Google 网上论坛上。根据谷歌开发者的说法:

1 使用隐式等待。司机将在这里等待,直到指定的时间 超时,直到找到该元素。请务必阅读 javadoc 注意事项。用法:

driver.get("http://www.google.com"); 
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
WebElement element = driver.findElement(By.name("q")); 
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); 
// continue with test... 

2 使用org.openqa.selenium.support.ui.WebDriverWait班级。这会 轮询直到预期条件为真,返回该条件的结果 (如果它正在寻找一个元素)。这比隐式的要灵活得多 等待,因为您可以定义任何自定义行为。用法:

Function<WebDriver, WebElement> presenceOfElementLocated(final By locator) { 
  return new Function<WebDriver, WebElement>() { 
    public WebElement apply(WebDriver driver) { 
      return driver.findElement(locator); 
    }
  };
}

// ... 
driver.get("http://www.google.com"); 
WebDriverWait wait = new WebDriverWait(driver, /*seconds=*/3); 
WebElement element = wait.until(presenceOfElementLocated(By.name("q"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebDriver Selenium API:当 Element 明显存在时,出现 ElementNotFoundErrorException! 的相关文章

随机推荐

  • 如何检查是否有足够的可用堆内存?

    我有一项作业要求我创建一个分配和释放内存的 堆 类 我相信我的代码可以工作 并且解决方案可以正常构建和运行 但我想确保没有任何内存泄漏 我还需要添加一些代码来检查分配给堆的所需数量是否可用 如果有人要分配非常大的数量 如何检查堆上分配的内存
  • 如何将@noescape注释添加到可选闭包

    我的函数有这个签名 func foo bar String baz String gt nil 而现在我想让不必要的逃避self在给定的闭包内 但是当我尝试这个时 func foo bar String noescape baz Strin
  • 向 woocommerce 添加每页产品下拉列表

    我正在尝试在不使用插件的情况下将 每页产品 下拉列表添加到我的 woocommerce 店面子主题中 我将以下代码添加到我的functions php中source add action woocommerce before shop lo
  • 在 Apache 上使用 PHP 进行长轮询

    希望我能很好地解释这一点 我正在努力创建一个通过 PHP 处理 ajax 请求的 PHP 库以面向对象的方式 我目前正在考虑一种实现长轮询解决方案的好方法 但对某些事情感到好奇 Apache 不能很好地保持多个连接打开 每个请求一个线程的模
  • scipy中样条插值的系数

    我想通过 scipy 计算样条插值的系数 在 MATLAB 中 x 0 3 y 0 1 4 0 spl spline x y disp spl coefs 它会返回 ans 1 5000 5 5000 3 0000 0 1 5000 1 0
  • 在 Javascript contenteditable div 中插入文本

    有没有办法将文本 字符串 可能有也可能没有 html 标签 插入到div 它必须是一个div而不是一个textarea 首先 我需要获取光标位置 然后在该位置插入文本 和函数类似insertAdjacentText 但只能在标签之前或之后插
  • VS调试问题,谁能帮我解释一下?

    一段C 代码 var isTrue new List
  • 压缩字体以在网络中使用

    在用作网络字体之前可以对字体进行某种压缩吗 我有一个 150kB 的字体文件 能不能压缩一下 而且如果我要求两种字体 eot and ttf两者都会被浏览器下载吗 如果您使用 FontSquirrel font face 套件生成器 htt
  • WSO2 ESB DBLookup 中介查询多行

    正如 DBLookup Mediator 的文档中所述 它仅返回查询的第一行 其他结果 如果有 将被忽略 我想知道是否有 最佳方法 来运行返回多个记录然后处理它们的查询 SELECT FROM X 现在我们正在实现 axis2 服务 但是还
  • 正则表达式匹配文件夹和所有子文件夹

    我需要为备份排除过滤器编写正则表达式以排除文件夹及其所有子文件夹 我需要匹配以下内容 folder1 statistics folder1 statistics folder2 statistics folder2 statistics 我
  • XGBoost - 具有不同曝光/偏移的泊松分布

    我正在尝试使用 XGBoost 对不等长的暴露期生成的数据的索赔频率进行建模 但无法让模型正确处理暴露 我通常会通过将 log exposure 设置为偏移量来做到这一点 你能在 XGBoost 中做到这一点吗 这里发布了类似的问题 xgb
  • firebase 身份验证/无效的自定义令牌

    我正在尝试使用 firebase admin sdk 生成自定义令牌 const uid 91f0bf4c 3e3c 441c a21d 6a7fee341db5 firebaseAdmin auth createCustomToken u
  • 如何训练 libsvm 格式的图像(像素)数据以用于 Java 识别

    我想制作一个 Java 应用程序来使用 libsvm 来识别字符 但是当进入这个过程时 我不明白如何训练图像数据以与 libsvm 一起使用 最近为了学习它 我做了一个测试现有数据 我也创建了32x32基于训练图像数据 将每个像素转换为0
  • C++:如何创建一个接受连接字符串作为参数的函数?

    我可以以某种方式设计我的日志记录功能 使其接受使用 C 的以下形式的串联字符串吗 int i 1 customLoggFunction My Integer i lt lt i lt lt customLoggFunction std co
  • SSIS 中的 UPSERT

    我正在编写一个在 SQL Server 2008 上运行的 SSIS 包 如何在 SSIS 中执行 UPSERT IF KEY NOT EXISTS INSERT ELSE IF DATA CHANGED UPDATE ENDIF ENDI
  • 如何使用 JavaBeans 集合数据集填充图表数据?

    我已经创建了一个工作 jrxml 报告 其中显示了一个由集合的数据集填充的表 List 的 Java bean 现在我想使用相同的数据集来创建图表 初学者的基本条形图 每个 bean 包含 4 个我想在条形图上显示的值 月份 正常时间 旅行
  • `all: unset` 和 `all: revert' 有什么区别

    根据 MDN 在许多情况下 revert 关键字的工作方式与 unset 完全相同 这 唯一的区别是具有由浏览器设置值的属性 或由用户创建的自定义样式表 在浏览器端设置 我不明白浏览器和自定义样式表 浏览器和自定义样式表都可以替换为all
  • Docker-Compose持久数据MySQL

    如果我运行 我似乎无法让 MySQL 数据持久化 docker compose down与以下 yml version 2 services other services data container name flask data ima
  • (如何)我可以计算枚举中的项目吗?

    当我有类似的事情时 我想到了这个问题 enum Folders FA FB FC 并想为每个文件夹创建一个容器数组 ContainerClass m containers 3 m containers FA etc 使用地图会更优雅 std
  • WebDriver Selenium API:当 Element 明显存在时,出现 ElementNotFoundErrorException!

    有时 在关闭 Javascript 的情况下在 WebDriver 上运行测试时 WebDriver 在找到某个元素并尝试单击它时会因 ElementNotFound 错误而崩溃 然而 这个元素显然是存在的 读完这篇文章后 http cod