Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 如何处理SeleniumWebDriver中出现的不可预测和不需要的弹出窗口,即使这不是预期的行为_Selenium Webdriver - Fatal编程技术网

Selenium webdriver 如何处理SeleniumWebDriver中出现的不可预测和不需要的弹出窗口,即使这不是预期的行为

Selenium webdriver 如何处理SeleniumWebDriver中出现的不可预测和不需要的弹出窗口,即使这不是预期的行为,selenium-webdriver,Selenium Webdriver,在我们的应用程序中,有时会出现弹出窗口,但这不是预期的行为,一旦该弹出窗口显示,其余脚本将失败,因为重点是弹出窗口。所以,你能指导我解决这个问题吗?如果它经常发生在同一个地方,你可以像这样处理它 public boolean isAlertPresent() { try { driver.switchTo().alert(); return true; } // try catch (Exception e) { retur

在我们的应用程序中,有时会出现弹出窗口,但这不是预期的行为,一旦该弹出窗口显示,其余脚本将失败,因为重点是弹出窗口。所以,你能指导我解决这个问题吗?如果它经常发生在同一个地方,你可以像这样处理它

public boolean isAlertPresent() {
    try {
        driver.switchTo().alert();
        return true;
    } // try
    catch (Exception e) {
        return false;
    } // catch
}
现在,您可以使用上面编写的方法检查警报是否存在,如下所示:

if (isAlertPresent()) {
    driver.switchTo().alert();
    driver.switchTo().alert().accept();
    driver.switchTo().defaultContent();
}
不过我不会把它放在任何地方,因为它会减慢测试速度。

您需要做的是- 创建一个函数,用于访问ex的任何元素-

getButton("xpath of your desired xpath").click();

getButton(String Xpath){
if(driver.findElement(By.xpath()).isVisible)
return driver.findElement(By.xpath())
else{
if (isAlertPresent()) {
    driver.switchTo().alert();
    driver.switchTo().alert().accept();
    driver.switchTo().defaultContent();
}
return driver.findElement(By.xpath())
}

}

确保始终调用此函数以从UI访问任何元素

您应该在正在测试的产品中提出一个bug,并在一个干净的分支上工作,而不是试图在测试中解决这个问题。这只会使测试复杂化,并隐藏问题,而不是帮助解决问题。