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