为什么XPath不能在IE中运行? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么XPath不能在IE中运行? [关闭]相关的知识,希望对你有一定的参考价值。
我试图使用XPath找到一个元素。它在Chrome上运行完美,但在Internet Explorer上却没有那么多。
在Chrome上,它工作正常,但当我尝试为IE运行它时,我收到以下错误,说
线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法找到xpath == html / body / form / div [3] / div [2] / div / div [2] / a的元素
可能是什么导致了这个?我已经修复了最常见的IE错误,如设置“保护模式”和“缩放”功能。
因为嵌入浏览器的XPath引擎是由每个浏览器供应商自己实现的,实际上它们在实现方面有所不同。对于较早的IE,像6和7一样没有嵌入XPath引擎。如果你在没有嵌入XPath引擎的浏览器上使用XPath,Selenium将使用自己的XPath库来执行你的XPath,Selenuim Xpath库没有实现所有的XPath功能,也与其他浏览器的Xpath引擎不同。
回到你的问题,你在开始时错过了一个salsh,它应该是
/html/body/form/div[3]/div[2]/div/div[2]/a
因为HTML
节点是HTML DOM树的根,所以你应该把/
放在头上告诉你的xpath从根节点开始
或者你可以省略xpath中的html://body/form/div[3]/div[2]/div/div[2]/a
因为它是一个真正的HTML
节点是每种浏览器上的HTML Dom树的根。
将xpath转换为css。 Xpath可以在浏览器之间变化,因为CSS-SELECTORS通常是相同的跨浏览器。所以用铬检查不会有问题。
html> body> form> div:nth-child(3)> div:nth-child(2)> div> div:nth-child(2)> a
Xpaths和IE也因其问题而闻名。如果必须使用xpath,请阅读Finding an elements XPath using IE Developer tool
你可以尝试的一件事是使用firefox的firebug
和firepath
插件来获取xpath,还可以通过增加元素检查之间的加载时间,即Thread.sleep()
。我建议的第一个想法至少对我有用。如有任何疑虑,请通知我
以上是关于为什么XPath不能在IE中运行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章