我有一张有数据的桌子。我需要检查该表包含一些数据,而不包含任何其他数据。因此,我需要检查该表包含的条目等于某个唯一值。
我分两步解决了那项任务:
第一步是使用XPath函数contains(),检查表中包含有趣的元素。
第二步通过使用XPath not contains()函数检查表中没有其他不相等的搜索值的元素。
List <WebElement> rows = tableBody.findElements(By.xpath("//*[not(contains(td,"+ elementName + "))]"));这个解决方案不好,因为not contains()函数运行的时间长了两倍。
还有其他解决方案吗?如何检查表中有具有搜索模式的元素,并且只包含这些元素?
发布于 2017-07-05 04:02:43
当您对一个元素调用.findElement(By.xpath(...)),并且您的表达式以//开始时,webdriver实际上会从根元素遍历整个HTML。如果希望在调用findElement的元素的上下文中执行它,请在前面加上一个点:.//。
如果您正在寻找速度,一种开箱即用的方法是获取表元素源HTML并使用HTML解析器(例如汤汁)应用您的需求。这具有多方面的优势:
要获取元素的HTML源代码,请使用getAttribute():
tableBody.getAttribute("innerHTML");https://sqa.stackexchange.com/questions/28265
复制相似问题