如何以编程方式在 JS 警报中按下 OK 按钮?
我想要做什么:每次创建警报后,按下 OK 按钮。
这是用于使用 Selenium RC 的 UI 测试。
另外,我已经检查过:单击 Alert (Selenium IDE) 内的 OK 按钮。
chooseOkOnNextConfirmation()
编辑:在单击生成警报的按钮之前,我已经使用并放置了它。我也试过把它放在后面。没有任何效果!
如何以编程方式在 JS 警报中按下 OK 按钮?
我想要做什么:每次创建警报后,按下 OK 按钮。
这是用于使用 Selenium RC 的 UI 测试。
另外,我已经检查过:单击 Alert (Selenium IDE) 内的 OK 按钮。
chooseOkOnNextConfirmation()
编辑:在单击生成警报的按钮之前,我已经使用并放置了它。我也试过把它放在后面。没有任何效果!
使用 chooseOkOnNextConfirmation 你可以做到这一点。
selenium.chooseOkOnNextConfirmation(); // prepares Selenium to handle next alert
selenium.click(locator);
String alertText = selenium.getAlert(); // verifies that alert was shown
assertEquals("This is a popup window", alertText);
有关更多信息,请通过此链接链接
你不能。除非您使用可以控制浏览器的东西(例如 selenium)。
如果您确实使用 selenium,请查看警报(Selenium IDE)中的单击 OK 按钮
如果您可以模拟空格键或输入键的按键,那么这将消除警报。但是,您最好从外部执行此操作,因为它们往往会阻止警报出现。
如果这是 JavaScript,您最好使用console.log()
.
如果您实际上可以看到一个警报对话框,那么它就无法完成。Selenium 应该为您处理它。但是,正如 Selenium 文档中所述:
Selenium 尝试向您隐藏这些对话框(通过替换 window.alert、window.confirm 和 window.prompt),这样它们就不会停止执行您的页面。如果您看到警报弹出窗口,可能是因为它在页面加载过程中触发,这对于我们来说保护页面通常为时过早。
这是 Selenium RC(因此也是 Selenium IDE)的一个已知限制,也是开发 Selenium 2 (WebDriver) 的原因之一。如果要捕获onload
JS 警报,则需要使用 WebDriver 警报处理。
也就是说,您可以使用Robot
或selenium.keyPressNative()
填写任何文本,然后Enter盲目地按下并确认对话框。这不是最干净的方法,但它可以工作。但是,您将无法收到该alert
消息。
Robot
将所有有用的键映射到常量,所以这很容易。使用keyPressNative()
, 您希望将10
其用作 pressEnter或27
for的值,Esc因为它适用于ASCII 代码。
selenium.chooseOkOnNextConfirmation(); 在 Selenium RC 为我工作。
我们必须注释 Alert OK 按钮的代码,然后它才会起作用。
$this->chooseOkOnNextConfirmation();
$this->click('locator');
$this->getConfirmation();
上面的过程对我使用 Selenium RC 和 PHPUnit 有效
斯威夫特 3
您想在显示警报和确定并取消按钮中尝试此代码
let sharephotoAction = UIAlertController.init(title: "Confirm Ticket", message:"Please Collect Your Ticket Before 1 Hours Ago in Location", preferredStyle: .alert )
sharephotoAction.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (alertAction) in
_ = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.Save), userInfo: nil, repeats: false)
}))
sharephotoAction.addAction(UIAlertAction(title: "Cancle", style: .default, handler:nil))
self.present(sharephotoAction, animated: true, completion:nil)
您可以使用 GSEvent.h 处理任何类型的按键事件,它在 GraphicsServices 框架中可用,它是私有框架(因此,您无法在应用商店提交)。