无法单击使用Selenium / Appium的警报

时间:2018-03-13 12:18:38

标签: selenium selenium-webdriver appium alert

我有一个警告,我需要点击一个OK按钮,但我尝试过的任何东西似乎都没有。我的代码可以识别警报,但是当我尝试执行某个操作时,它似乎与警报后面的屏幕进行交互。

这是我正在使用的原生iOS应用。我尝试了以下选项:

1. driver.switchTo().alert().accept();
2. driver.switchTo().alert().dismiss;
3. driver.switchTo().alert();
   driver.findelement(By.id("OK")).click();
4. TouchAction touchAction = new TouchAction(driver).tap(xCoordinates, yCoordinates);
    touchAction.perform();

是否有人知道点击此提醒的其他方式?

Alert

Alert Properties

OK button properties

2 个答案:

答案 0 :(得分:0)

在我看来,同步问题和一个简单的解决方案是WebDriverWait ExpectedConditionsalertIsPresent(),如下所示:

  • 接受提醒:

    new WebDriverWait(driver, 20).until(ExpectedConditions.alertIsPresent()).accept();
    
  • 解雇警报:

    new WebDriverWait(driver, 20).until(ExpectedConditions.alertIsPresent()).dismiss();
    

更新

作为替代方案,您可以尝试以下代码块:

//import
import org.openqa.selenium.Alert;
//code block
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
alert.accept();

答案 1 :(得分:0)

在appium中添加功能 capabilities.setCapability(“autoGrantPermissions”,true); 您的功能列表!它将允许自动接受或确定。我的同一个问题已经解决了!