![](/img/trans.png)
[英]How to handle Javascript Alert/pop up window in selenium webdriver
[英]How to handle a javascript alert window using PHP behat/mink selenium2 chrome webdriver
测试时,我收到一个javascript警报框,尝试关闭它,但打开错误意外警报:{Alert text:OK to remove this exclusion?}
我正在尝试使用:
$this->driver = new Selenium2Driver('chrome');
$this->driver->getWebDriverSession()->accept_alert();
使用PHP behat / mink selenium2 chrome webdriver关闭警报框的正确方法是什么?
使用Behat 3.2.0貂皮1.7.1
你能检查一下吗
$this->getSession()->getDriver()->getWebDriverSession()->accept_alert();
要么
您可以尝试如下更新featureContext.php文件中的ConfirmPopup函数吗
public function iConfirmPopup()
{
$this->getMainContext()->getSession()->getDriver()->getWebDriverSession()->accept_alert();
}
将此添加到featureContext.php文件中
您无需为此方法创建Selenium2Driver。 对于Behat 3,如果将其添加到扩展Page对象的对象中,则应该可以使用。
public function iConfirmThePopup(){
$i = 0;
while($i < 5) {
try {
$this->getDriver()->getWebDriverSession()->accept_alert();
break;
}
catch(NoAlertOpenError $e) {
sleep(1);
$i++;
}
}
}
并添加到课程的开头:
use WebDriver\\Exception\\NoAlertOpenError;
您可以根据需要自定义方法,如果不需要,可以删除while和try-catch。
UPD:固定的代码格式
我发现此功能确实对我有用:
public function acceptAlert()
{
$driver = $this->getDriver();
if ($driver instanceof Selenium2Driver) {
for ($i = 0; $i < 10; $i++) {
try {
$driver->getWebDriverSession()->accept_alert();
break;
}
catch (NoAlertOpenError $e) {
sleep(2);
$i++;
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.