我有一组PHPUnit测试,利用WebDriver和Selenium通过我的Ubuntu机器上的浏览器运行测试。我让所有东西都按预期运行FireFox,然后尝试简单地将FireFox WebDriver配置交换为一些PhantomJS(1.9.8)WebDriver配置。当我使用一个简单的网站(google.com)时,PhantomJS会起作用,但是当我尝试我的开发网站时,PhantomJS中似乎没有任何事情发生,它最终在我的第一个断言中失败了。屏幕截图没什么用处(黑白棋盘格)。然而,如果我使用google.com,屏幕截图就是预期的Google网站。
$capabilities = null;
if($this->testConfig["test.browser"] == "phantomjs"){
$capabilities = array(
WebDriverCapabilityType::BROWSER_NAME => 'phantomjs'
,'phantomjs.page.settings.userAgent' => 'Mozilla/5.0 (X11; Ubuntu; Linux x86; rv:25.0) Gecko/20100101 Firefox/25.0'
,WebDriverCapabilityType::ACCEPT_SSL_CERTS => 'true'
,WebDriverCapabilityType::PLATFORM => 'LINUX'
,WebDriverCapabilityType::JAVASCRIPT_ENABLED => 'true'
,'--web-security' => 'no'
,'--ignore-ssl-errors' => 'YES'
,'--webdriver-loglevel' => 'DEBUG'
,'phantomjs.page.settings.webSecurityEnabled' => 'false'
);
} else {
$capabilities = array(WebDriverCapabilityType::BROWSER_NAME => 'firefox');
}
$this->webDriver = RemoteWebDriver::create('127.0.0.1:8910', $capabilities, 5000);
$window = new WebDriverDimension(1440,900);
$this->webDriver->manage()->window()->setSize($window);
$webDriver->get($url);
$webDriver->takeScreenshot('/home/scc/screen1.png');
$this->webDriver->wait(45, 1000)->until(
WebDriverExpectedCondition::titleContains($this->testConfig["app.title"])
);
在运行上面的代码之前,我在端口8910上启动了phantomJS服务器
scc@ubuntu:/scc/libraries/phantomjs$ phantomjs --webdriver=127.0.0.1:8910
PhantomJS正在推出GhostDriver ......
问题是我可以通过FireFox让我的远程站点工作(dev.example.com),但是我无法让它通过PhantomJS工作。我可以通过PhantomJS(google.com)访问其他网站,但不能访问我的dev.example.com。我已经尝试了许多不同的设置来从PhantomJS控制台获取更多与调试相关的日志消息,但到目前为止,没有太多的信息是有用的。
[INFO - 2016-01-10T23:31:10.717Z]会话[3b277b40-b7f2-11e5-98cd-41d97e3b4946] - page.settings - {“XSSAuditingEnabled”:false,“javascriptCanCloseWindows”:true,“javascriptCanOpenWindows” :true,“javascriptEnabled”:true,“loadImages”:true,“localToRemoteUrlAccessEnabled”:false,“userAgent”:“Mozilla / 5.0(X11; Ubuntu; Linux x86; rv:25.0)Gecko / 20100101 Firefox / 25.0”,“ webSecurityEnabled “:” 假“} [INFO - 2016-01-10T23:31:10.718Z]会议[3b277b40-b7f2-11e5-98cd-41d97e3b4946] - page.customHeaders: - {} [INFO - 2016-01-10T23:31:10.718Z]会话[3b277b40-b7f2-11e5-98cd-41d97e3b4946] - Session.negotiatedCapabilities - {“browserName”:“phantomjs”,“version”:“1.9.8”, “驱动程序名”: “ghostdriver”, “driverVersion”: “1.1.0”, “平台”: “Linux的未知32位”, “javascriptEnabled”:真实的, “takesScreenshot”:真实的, “handlesAlerts”:假的,“databaseEnabled “:假的,” locationContextEnabled “:假的,” applicationCacheEnabled “:假的,” browserConnectionEnabled “:假的,” cssSelectorsEnabled “:真实的,” webStorageEnabled “:假的,” 旋转 “:假的,” acceptSslCerts “:假的,” nativeEvents“: true,“proxy”:{“proxyType”:“direct”},“phantomjs.page.settings.userAgent”:“Mozilla / 5.0(X11; Ubuntu; Linux x86; rv:25.0)Gecko / 20100101 Firefox / 25.0”, “phantomjs.page.settings.webSecurityEnabled”: “假”} [INFO - 2016-01-10T23:31:10.719Z] SessionManagerReqHand - _postNewSessionCommand - 新会话创建时间:3b277b40-b7f2-11e5-98cd-41d97e3b4946
我想也许这可能是我的dev.example.com的SSL问题,但到目前为止它与http与https完全相同。还有什么我可能做错了?我该怎么做才能帮助PhantomJS记录更多的调试信息,以便告诉它失败的地方?
谢谢, 肖恩