【发布时间】:2017-05-14 15:51:37
【问题描述】:
我有一个如下的 Java 代码,当我通过 PhantomJs 运行时出现“不支持的命令异常”,但如果我通过 firefox 和 chrome 运行它就可以正常工作:-
注意:使用 phantomJs,我们可以在下面的代码中执行到第三步。我在许多博客中进行了搜索,但这些答案并没有解决我的问题。
1. cvvField.sendKeys(cvcData);
2. proceedToPayBtn.click();
3. Reporter.log("Card details are submitted from payment UI page");
4. Alert a1=driver.switchTo().alert();
5. Reporter.log("Alert with text:"+a1.getText());
6. a1.accept();
这里的cvvField 和proceedToPayBtn 是WebElements,cvcData 的值为“111”。
错误日志:-
org.openqa.selenium.UnsupportedCommandException: Invalid Command Method -
{"headers":{"Accept-Encoding":"gzip,deflate","Cache-Control":"no-cache","Connection":"Keep-Alive","Host":"localhost:30462","User-Agent":"Apache-HttpClient/4.5.1 (Java/1.8.0_101)"},"httpVersion":"1.1","method":"GET","url":"/alert_text","urlParsed":{"anchor":"","query":"","file":"alert_text","directory":"/","path":"/alert_text","relative":"
/alert_text","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/alert_text","queryKey":{},"chunks":["alert_text"]},"urlOriginal":"/session/9e392a50-ce79-11e6-b24a-2b12cf1ec4d6/alert_text"}
命令持续时间或超时:31 milliseconds
我已经编辑了上面的代码,但同样的错误来了。请建议
if (driver instanceof PhantomJSDriver)
{
JavascriptExecutor je = (JavascriptExecutor) driver;
je.executeScript("window.alert = function(){};");
je.executeScript("window.confirm = function(){return true;};");
System.out.println("Alert has been handled");
} else {
Alert a1 = driver.switchTo().alert();
a1.accept();
}
我在输出控制台中收到“已处理警报”,但未处理警报。
【问题讨论】:
-
谢谢@Sumit amble
-
我已经编辑了上面的代码,但仍然无法正常工作,显示同样的错误。
-
stackoverflow.com/questions/27994845/… 有一个对我有用的解决方案
-
这个解决方案@stackoverflow.com/questions/27994845/… 为我工作
标签: java selenium phantomjs ghostdriver