Webdriver:如何在全球范围内处理警报框

时间:2017-04-05 05:14:24

标签: selenium webdriver alert

场景:在我的自动化套件中,我希望全局处理警报框,因为业务需求可能会出现在网站的任何位置。我不想在任何地方使用try catch,所以我想要的是在一个函数中编写代码并以某种方式使用它,以便它可以在任何地方发生全局警报。

2 个答案:

答案 0 :(得分:1)

一个选项(我在工作的地方使用的一个选项)是调用方法在任何时候出现警报时清除警报:

public void clearAlert() {
    Alert alert = ExpectedConditions.alertIsPresent().apply(this);
    if (alert != null) {
        alert.accept();
    }
}

该方法位于实现WebDriver接口的类中,因此'这个'是一个有效的WebDriver实例。

对于任何创建警报的操作,我们的框架在执行操作后调用clearAlert()(假设警告是预期的并且应该被忽略)。

如果您的提示框确实无法预测,您可以在执行每项操作之前或之后致电clearAlert(),如果您拥有精心设计的框架,这不应该太难。

答案 1 :(得分:0)

尝试以下代码。

let frame2 = (frame: CGRect(x: 80.0, y: self.loginButton.frame.maxY + 40.0, width: (self.view.bounds.size.width - 160.0), height: 40))