1

我正在使用带有 Java 语言的 selenium Web 驱动程序。当弹出窗口中有两个按钮时,即 ok 和 cancel ,可以使用 Web 驱动程序使用以下代码轻松处理:

Alert alert = driver.switchTo().alert();
alert.accept(); // or alert.dismiss(); depending upon the action u want to perform.

但是当有两个以上的按钮时怎么办,即弹出窗口中有3到4个按钮(例如确定,取消,重试,忽略/继续),在这种情况下我们该怎么办?我们如何点击我们想要的任何按钮?

非常感谢您提前提供的帮助

4

2 回答 2

2

我们正在谈论的是 JavaScript 的对话框弹出窗口。有alert(有一个确定按钮)、confirm(有确定/取消)和prompt(有一个输入字段和确定)。而已。因此,您看到的对话框不是 JavaScript 对话框,无法由 Selenium 的Alert界面处理。

您可能正在处理这两个之一:

  1. 像 jQuery dialog()(或类似的东西)这样的自定义对话框。那是好消息!这不是真正的弹出窗口,它只是一个精心设计的覆盖层,由普通的 HTML 组成,看起来像一个对话框。您应该能够与 WebDriver 的常用方式进行交互:使用您选择的工具检查元素,然后找到并单击需要单击的按钮。
  2. 本机浏览器甚至操作系统的对话框(例如下载对话框)。这是个坏消息,因为 WebDriver 无法处理这些。此外,它们在浏览器/系统/语言设置中的外观往往不同,因此您需要检测和处理每种情况。您的选择包括:
    • Robot课程允许您以编程方式“按”键盘上的任何内容(或盲目单击),因此可以通过按下来摆脱对话框Enter
    • 自动车。它是一个 Windows 程序,可用于处理任何系统级自动化。
    • 差不多就是这样。您可以指定您特别处理的对话框,我们或许能够提出更好的解决方法。例如,可以完全避免下载对话框等。
于 2012-07-06T08:01:45.317 回答
0

您只想在处理本机浏览器弹出对话框时使用 alert() 。如果您测试的 Web 应用程序弹出一个 HTML 对话框,那么您可以使用元素 ID、xpath、CSS 选择器等选择并单击任何按钮。

于 2012-07-06T07:04:14.750 回答