我在與PhantomJSDriver和Java一個奇怪的問題,
我試圖點擊這樣的鏈接:PhantomJSDriver找到的元素,但仍然是不確定的
WebElement loginButton = wait.until(
ExpectedConditions.elementToBeClickable(By.xpath("//a[@ui-sref='login']"))
);
LOG.debug("Login Button Found : ["+loginButton.getAttribute("href")+"]");
loginButton.click();
隨着克羅姆驅動程序我不是有任何問題,但phantomsJS(2.0.0(或我有這樣那樣的錯誤1.9.7/1.9.8)和GhostDriver 1.2.0:
[DEBUG - 2015-05-04T09:46:03.610Z] WebElementLocator - _handleLocateCommand - Element(s) Search Start Time: 1430732763610
[DEBUG - 2015-05-04T09:46:03.612Z] WebElementLocator - _find.locator - {"using":"xpath","value":"//a[@ui-sref='login']"}
[DEBUG - 2015-05-04T09:46:03.624Z] WebElementLocator - _locateElement.locator - {"using":"xpath","value":"//a[@ui-sref='login']"}
[DEBUG - 2015-05-04T09:46:03.624Z] WebElementLocator - _locateElement.findElementResult - {"status":0,"value":{"ELEMENT":":wdc:1430732763623"}}
[DEBUG - 2015-05-04T09:46:03.624Z] WebElementLocator - _handleLocateCommand.elements - {"status":0,"value":{"ELEMENT":":wdc:1430732763623"}}
[DEBUG - 2015-05-04T09:46:03.624Z] WebElementLocator - _handleLocateCommand.rootElement - BODY
[DEBUG - 2015-05-04T09:46:03.625Z] WebElementLocator - _handleLocateCommand - Element(s) Found. Search Stop Time: 1430732768610
和錯誤消息:
org.openqa.selenium.WebDriverException: {"errorMessage":"undefined is not an object (evaluating '(y(a)?y(a).parentWindow||y(a).defaultView:window).getComputedStyle(a,null).MozTransform.match')","request":{"headers":{"Accept":"application/json, image/png","Cache-Control":"no-cache","Connection":"Keep-Alive","Host":"localhost:7356"},"httpVersion":"1.1","method":"GET","url":"/displayed","urlParsed":{"anchor":"","query":"","file":"displayed","directory":"/","path":"/displayed","relative":"/displayed","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/displayed","queryKey":{},"chunks":["displayed"]},"urlOriginal":"/session/5f287dd0-f242-11e4-9753-1726c362b9fc/element/%3Awdc%3A1430732763623/displayed"}}
Command duration or timeout: 229 milliseconds
我增加等之前明確的等待,但它什麼都不做...... 怪異的一部分,如果,如果我嘗試這種代碼,而不是:
d.findElement(By.xpath("//a[@ui-sref='login']"));
LOG.debug("Login Button Found : ["+loginButton.getAttribute("href")+"]");
loginButton.click();
我可以訪問href屬性!
但點擊()方法失敗
[編輯] 第一PhanstomJS配置是這樣的:
// Change "User-Agent" via page-object capabilities
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "userAgent", "My User Agent - Chrome");
// Disable "web-security", enable all possible "ssl-protocols" and "ignore-ssl-errors" for PhantomJSDriver
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {
"--web-security=false",
"--ssl-protocol=any",
"--ignore-ssl-errors=true",
"--webdriver-loglevel=DEBUG"
});
// Fetch configuration parameters
// "phantomjs_exec_path"
if (sConfig.getProperty("phantomjs_exec_path") != null) {
sCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, sConfig.getProperty("phantomjs_exec_path"));
} else {
throw new IOException(String.format("Property '%s' not set!", PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY));
}
}
謝謝您的幫助!
這同樣的錯誤在這個問題解決了,看看是否有幫助 - HTTP: //stackoverflow.com/questions/25592316/phantom-js-fails-50-of-the-time。請添加您設置phantomjs選項的代碼部分。 – LittlePanda