2

如何以编程方式在 JS 警报中按下 OK 按钮?

我想要做什么:每次创建警报后,按下 OK 按钮。

这是用于使用 Selenium RC 的 UI 测试。

另外,我已经检查过:单击 Alert (Selenium IDE) 内的 OK 按钮

chooseOkOnNextConfirmation()编辑:在单击生成警报的按钮之前,我已经使用并放置了它。我也试过把它放在后面。没有任何效果!

4

8 回答 8

1

使用 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);

有关更多信息,请通过此链接链接

于 2012-05-25T10:05:14.537 回答
0

你不能。除非您使用可以控制浏览器的东西(例如 selenium)。

如果您确实使用 selenium,请查看警报(Selenium IDE)中的单击 OK 按钮

于 2012-05-25T07:05:37.803 回答
0

如果您可以模拟空格键或输入键的按键,那么这将消除警报。但是,您最好从外部执行此操作,因为它们往往会阻止警报出现。

如果这是 JavaScript,您最好使用console.log().

于 2012-05-25T07:07:46.630 回答
0

如果您实际上可以看到一个警报对话框,那么它就无法完成。Selenium 应该为您处理它。但是,正如 Selenium 文档中所述

Selenium 尝试向您隐藏这些对话框(通过替换 window.alert、window.confirm 和 window.prompt),这样它们就不会停止执行您的页面。如果您看到警报弹出窗口,可能是因为它在页面加载过程中触发,这对于我们来说保护页面通常为时过早。

这是 Selenium RC(因此也是 Selenium IDE)的一个已知限制,也是开发 Selenium 2 (WebDriver) 的原因之一。如果要捕获onloadJS 警报,则需要使用 WebDriver 警报处理

也就是说,您可以使用Robotselenium.keyPressNative()填写任何文本,然后Enter盲目地按下并确认对话框。这不是最干净的方法,但它可以工作。但是,您将无法收到该alert消息。

Robot将所有有用的键映射到常量,所以这很容易。使用keyPressNative(), 您希望将10其用作 pressEnter27for的值,Esc因为它适用于ASCII 代码

于 2012-05-25T09:52:06.273 回答
0

selenium.chooseOkOnNextConfirmation(); 在 Selenium RC 为我工作。

我们必须注释 Alert OK 按钮的代码,然后它才会起作用。

于 2014-05-27T03:38:40.097 回答
0
$this->chooseOkOnNextConfirmation();
$this->click('locator');
$this->getConfirmation();

上面的过程对我使用 Selenium RC 和 PHPUnit 有效

于 2015-01-30T21:57:16.527 回答
0

斯威夫特 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)
于 2017-05-18T10:09:12.193 回答
-1

您可以使用 GSEvent.h 处理任何类型的按键事件,它在 GraphicsServices 框架中可用,它是私有框架(因此,您无法在应用商店提交)。

于 2013-12-11T08:55:21.817 回答