phantomjs和硒 - webdriver的不工作
问题描述:
我的硒的版本是:phantomjs和硒 - webdriver的不工作
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
我想通过参数设置驾驶员的端口:--webdriver
,像这样:
DesiredCapabilities sCaps = new DesiredCapabilities();
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"/Users/user/phantomjs");
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "userAgent",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "javascriptEnabled", true);
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "loadImages", true);
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "cookiesEnabled", true);
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX + "Accept",
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX + "Accept-Language", "en");
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX + "Connection", "keep-alive");
ArrayList<String> cliArgsCap = new ArrayList<String>();
cliArgsCap.add("--web-security=false");
cliArgsCap.add("--ssl-protocol=any");
cliArgsCap.add("--ignore-ssl-errors=true");
cliArgsCap.add("--debug=true");
cliArgsCap.add("--webdriver=127.0.0.1:36000");
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap);
PhantomJSDriver d = new PhantomJSDriver(sCaps);
,但之后我设置代码如下,控制台显示:
Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out
waiting for driver server to start.
是不是硒能够处理参数--webdriver
?
答
您必须下载phantomjs的二进制文件,然后将其传递给PhantomJSDriver。 在Maven依赖你只是用硒不phantomjs
http://phantomjs.org/download.html
现在添加System.setPropertybefore驱动程序实例
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // not really needed: JS enabled by default
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:/phantomjs.exe");
WebDriver driver = new PhantomJSDriver(caps);
参考更多的信息下面的链接: -
http://seleniumworks.blogspot.in/2013/03/headless-browser-testing-using.html
使用下面的代码,这是一种方法来设置PhantomJSDri的端口ver: -
private void loadLightWeightDriverCustom() {
ArrayList<String> cliArgsCap = new ArrayList();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, PHANTOMJS_EXE.getAbsolutePath());
cliArgsCap.add("--web-security=false");
cliArgsCap.add("--ssl-protocol=any");
cliArgsCap.add("--ignore-ssl-errors=true");
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap);
driver = new PhantomJSDriver(Configure(cliArgsCap), capabilities);
}
private PhantomJSDriverService Configure(ArrayList<String> cap) {
return new PhantomJSDriverService.Builder().usingPhantomJSExecutable(PHANTOMJS_EXE)
.usingPort(5555)
.usingCommandLineArguments(
(cap.toArray(new String[cap.size()])))
.build();
}
你能帮我理解你想通过'cliArgsCap.add(“ - webdriver = 127.0.0.1:36000”)来做什么吗?谢谢 – DebanjanB
@DebanjanB我想修复GhostDriver的端口 – DaC1989
那么你为什么要使用'--webdriver'选项?文档清楚地说'--webdriver启动'远程WebDriver模式'(嵌入式GhostDriver):'[[:]]'(默认'127.0.0.1:8910')'谢谢 – DebanjanB