phantomjs - chromedriver 工作,但 "phantomjs unable to locate item using css selector"

标签 phantomjs nightwatch.js

我正在为我的工作设计一些端到端的测试,我已经通过 chromedriver 使用 nightwatch.js 启动并运行它。但是,我们希望在我们的服务器上运行它,所以我希望能够使用 phantomjs 运行它。尽管使用 chromedriver 执行测试没有发生任何事故,但 Phantomjs 会产生以下错误“phantomjs 无法使用 css 选择器定位项目”

有任何想法吗?我已经在互联网上搜索了解决方案,但无济于事。

最佳答案

首先查看 decates '在这里评论:https://github.com/nightwatchjs/nightwatch/issues/243#issuecomment-94287511

看看根据从浏览器传递到站点的用户代理信息,站点如何返回不同的 XHTML 数据?因此,如果您想使用 phantomjs,但可以通过用户代理将其作为不同的浏览器进行欺骗,您可以配置 phantomjs 的用户代理功能,如下所示(欺骗 Mac Chrome):

"desiredCapabilities": {
  "browserName": "phantomjs",
  "phantomjs.cli.args" : ["--ignore-ssl-errors=true"],
  "phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
}

那么你的测试应该和你的其他浏览器一样。使用您喜欢的任何浏览器,您可以检查它在此处发送的用户代理字符串:http://www.httpuseragent.org/ .以下是一些其他示例:
// Mac Chrome 46
"phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"

// Windows Chrome 46
"phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"

// Mac Firefox 42.0
"phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0"

// Windows Firefox 42.0
"phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Windows NT 6.3; rv:42.0) Gecko/20100101 Firefox/42.0"

// PhantomJS 2.0
"phantomjs.page.settings.userAgent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.0.0 Safari/538.1"

关于phantomjs - chromedriver 工作,但 "phantomjs unable to locate item using css selector",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25148268/

相关文章:

cucumber - 切换到Poltergeist时出现NotImplementedError

javascript - 如何使用多个文本字符串条件从数组中过滤掉多个对象

javascript - 如何知道 nightwatch.js 中该行已执行?

javascript - 守夜人 : I need to search for a word in a table without using document

javascript - 有没有办法将对象传递给 casper.js 的 evaluate()?

PHP PhantomJS - "use JonnyW\PhantomJs\Client;"错误?

php - 如何安装 PHP PhantomJS 需要的包

javascript - 在 phantomJS 中播放视频时出错

javascript - 如何在 nightwatch.js 中使用循环

node.js - nightwatch.js 中 page_objects 中的多级部分