首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化检查webdriver中不存在的元素?

问如何优化检查webdriver中不存在的元素?
EN

Stack Exchange QA用户
提问于 2017-07-04 09:45:12
回答 1查看 465关注 0票数 2

我有一张有数据的桌子。我需要检查该表包含一些数据,而不包含任何其他数据。因此,我需要检查该表包含的条目等于某个唯一值。

我分两步解决了那项任务:

第一步是使用XPath函数contains(),检查表中包含有趣的元素。

第二步通过使用XPath not contains()函数检查表中没有其他不相等的搜索值的元素。

示例:

代码语言:javascript
复制
 List <WebElement> rows = tableBody.findElements(By.xpath("//*[not(contains(td,"+ elementName + "))]"));

这个解决方案不好,因为not contains()函数运行的时间长了两倍。

还有其他解决方案吗?如何检查表中有具有搜索模式的元素,并且只包含这些元素?

EN

回答 1

Stack Exchange QA用户

发布于 2017-07-05 04:02:43

当您对一个元素调用.findElement(By.xpath(...)),并且您的表达式以//开始时,webdriver实际上会从根元素遍历整个HTML。如果希望在调用findElement的元素的上下文中执行它,请在前面加上一个点:.//。

替代解决方案

如果您正在寻找速度,一种开箱即用的方法是获取表元素源HTML并使用HTML解析器(例如汤汁)应用您的需求。这具有多方面的优势:

  • 您没有在HTTP上发出任何额外的WebDriver JSON,也没有开销
  • 您没有使用XPaths遍历整个树,而是在表的范围内工作。

要获取元素的HTML源代码,请使用getAttribute():

代码语言:javascript
复制
tableBody.getAttribute("innerHTML");
票数 3
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/28265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档