我如何以编程方式按警报按钮,OK?(How can I press the alert ok but

2019-07-29 13:37发布

我怎样才能在一个JS警报按OK按钮编程?

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

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

另外,我已经检查: 点击警报(硒IDE)中确定按钮 。

编辑:我已经使用chooseOkOnNextConfirmation()并把它放在单击生成警报的按钮之前。 我也试过之后将其放置。 没有工作!

Answer 1:

如果你可以看到一个警告对话框,那么就无法完成。 硒应该为您处理。 但是, 如硒文档中所述 :

硒试图从你(通过更换window.alert,window.confirm和window.prompt)隐瞒这些对话,使他们不会停止页面的执行。 如果你看到一个警告弹出,这可能是因为它在页面加载过程中,通常是太早了我们保护的页面被解雇。

这是硒RC(因此,硒IDE,太)和硒为什么2(webdriver的)被开发的原因之一的已知限制。 如果你想赶上onload JS警报,您需要使用的webdriver 报警处理 。

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

Robot拥有所有映射到常量有用的按键,这样会很容易。 随着keyPressNative()要使用10作为值,按Enter键27Esc键 ,因为它的工作原理ASCII码 。



Answer 2:

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

如果你使用的硒,看看单击OK按钮警报(硒IDE)内



Answer 3:

如果你可以模拟空格键的按键或回车键,那么就会解除警报。 不过你最好从外面任何使警报显示出来摆在首位这样做,因为他们往往会阻止。

如果这是JavaScript中,你可以使用更好console.log()



Answer 4:

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

欲了解更多信息,请通过以下链接链接



Answer 5:

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

我们必须简评供警报OK按钮的代码,然后它会奏效。



Answer 6:

$this->chooseOkOnNextConfirmation();
$this->click('locator');
$this->getConfirmation();

上述过程使用Selenium RC PHPUnit的工作对我来说



Answer 7:

斯威夫特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)


Answer 8:

您可以使用GSEvent.h处理任何类型的按键事件的,它是在GraphicsServices框架availble的,这是私人framewrk(这样,你是不是能够提交其在AppStore上)。



文章来源: How can I press the alert ok button programmatically?