Stu*_*ser 4 .net phantomjs selenium-webdriver
作为Selenium的PhantomJSDriver新手,它如何处理JS警报?
我找到了JSPhantom onAlert文档,但是等效的PhantomJSDriver代码是什么
Driver.SwitchTo().Alert().Accept();
Run Code Online (Sandbox Code Playgroud)
是?
目前,我已经提前返回一个保护条款PhantomJSDriver,以阻止异常,但是如何与PhantomJS中的js警报进行交互?
小智 7
我在使用PhantomJS Web Driver处理警报方面遇到了类似的问题.以下代码似乎解决了这个问题.这是一个C#实现,但也应该与Java一起使用..
public IAlert GetSeleniumAlert()
{
//Don't handle Alerts using .SwitchTo() for PhantomJS
if (webdriver is PhantomJSDriver)
{
var js = webdriver as IJavaScriptExecutor;
var result = js.ExecuteScript("window.confirm = function(){return true;}") as string;
((PhantomJSDriver)webdriver).ExecutePhantomJS("var page = this;" +
"page.onConfirm = function(msg) {" +
"console.log('CONFIRM: ' + msg);return true;" +
"};");
return null;
}
try
{
return webdriver.SwitchTo().Alert();
}
catch (NoAlertPresentException)
{
return null;
}
}Run Code Online (Sandbox Code Playgroud)
稍后在您希望警报发生的代码中
IAlert potentialAlert = GetSeleniumAlert();
if (potentialAlert != null) //will always be null for PhantomJS
{
//code to handle Alerts
IAlert alert=webDriver.SwitchTo().Alert();
alert.Accept();
}Run Code Online (Sandbox Code Playgroud)
对于PhantomJS,我们将警报的默认响应设置为accept.
| 归档时间: |
|
| 查看次数: |
4261 次 |
| 最近记录: |