PhantomJS 和 XPath 选择器

PhantomJS and XPath selectors

我有一个 HTML 页面,其中包含不止一个以下元素:

<div id="asd">
...
   <span id="dfgh">Mytext</span>
...
</div>

我将 Webdriver-io 与 WDIO 运行ner 一起用于 运行 jasmine 测试。

在我的测试中,我等到跨度为 available/visible,以便我可以检查 DOM.[=22= 中的其他一些元素]

browser.waitForExist('//span[text()="Mytext"]', 120 * 1000, false);

我正在 运行使用 PhantomJS 进行无头测试,作为独立的

GhostDriverphantomjs --webdriver=4444 --debug=true

并且我使用独立启动的 selenium

java -jar selenium-server-standalone-2.53.0.jar -Dwebdriver.chrome.driver=./chromedriver)

到 运行 chrome 和 firefox 中的测试。

我注意到相同的 .waitForExist 函数调用在 chrome 运行 中很快,但在 PhantomJS 中这需要很长时间,有时它会超时而找不到element.

有没有人注意到 PhantomJSXPath 选择器的类似行为?

PhantomJS 中这样的 XPath 选择器可能有什么问题?

TIA

我自己也遇到过这个问题,我得出的结论是:

browser.get(url);

Selenium 等待浏览器返回页面确实已到达的答复。 PhantomJS 中的 Ghostdriver 会更早地返回源代码并在执行 javascript 时花费更长的时间,而 Chrome 或 Firefox 会发送信号,并且动态生成的内容通常已经可用。当您的互联网连接速度较慢并且想要进行跨浏览器测试时,这尤其令人讨厌

不过不要把我的话当作事实,这个 "conclusion" 仅来自广泛的测试并且是假设。我不熟悉该工具的代码。