【问题标题】:How to Click 'OK' or 'CANCEL' on a JS popup (authentication) within Selenium IDE如何在 Selenium IDE 中的 JS 弹出窗口(身份验证)上单击“确定”或“取消”
【发布时间】:2017-09-14 16:56:40
【问题描述】:

我看了一遍又一遍,似乎其他相关线程真的没有解决任何问题?!

首先,请不要说如何在 Selenium WD 中执行此操作 - 我们了解此方法,它不适用于我们的 UAT 测试。该工具是 Selenium IDE,我们只需单击“确定”或“取消”

前置条件: Firefox 设置为记住用户名/密码,当确认框显示给用户时,您可以看到这一点:

  • 窗口标题:需要身份验证
  • 窗口内容:{{Site}} 正在请求您的用户名和密码
  • 用户名/密码:填写正确的凭据

我们只是尝试单击“确定”按钮。您无法检查元素,因为它是 JS,我们只想知道在此对话框中单击“确定”或“取消”按钮的最简单方法是什么。

我已经尝试过 StoreAlert、StoreConfirmation、ChooseOKOnNextConfirmation 和 ChooseCancelOnNextConfirmation,但似乎都不起作用。

如果您回复,请具体说明“命令”、“目标”和“值”字段。

【问题讨论】:

  • 当我使用 UI Spy 或 (Microsoft) Inspect.exe 时,我可以看到 JS 对话框的详细信息,但我仍然无法在 Selenium IDE 中访问它。似乎很难为看起来不那么复杂的事情找到解决方案。

标签: javascript authentication login selenium-ide


【解决方案1】:

我现在使用 AutoIt 以两种不同的方式成功地做到了这一点。我无法仅使用 selenium ide 来消费和处理弹出窗口。 SeleniumHQ.org 有关于如何处理提示、警报和对话框的示例,但“需要身份验证”弹出窗口不在范围内。

方法 #1:AutoIt 发送用户名、密码并点击“确定”按钮

  • 执行发送用户名、密码并单击“确定”按钮的 AutoIt 脚本(此脚本应循环等待下一步弹出窗口)
  • 执行 Selenium IDE 脚本,触发您正在测试的站点以显示“需要身份验证”弹出窗口。这可能只是在访问网站。
  • 使 Selenium IDE 脚本进入睡眠状态(睡眠命令)
  • AutoIt 脚本接管(看到提示)并发送用户名、密码并单击“确定”按钮。 AutoIt 脚本终止
  • Selenium IDE 脚本从睡眠中唤醒并继续测试用例的测试

方法#2

  • 执行单击“确定”按钮的 AutoIt 脚本(此脚本应循环等待下一步中的弹出窗口)
  • 执行 Selenium IDE 脚本,该脚本会访问该站点但让 user:pass 输入该站点的 URL。
  • 使 Selenium IDE 脚本进入睡眠状态(睡眠命令)
  • AutoIt 脚本接管(查看提示)并发送并单击“确定”按钮。 AutoIt 脚本终止
  • Selenium IDE 脚本从睡眠中醒来并继续测试用例的测试

总结:方法#1使用AutoIt脚本进入用户,通过并点击'ok'按钮。方法#2 使用 AutoIt 脚本只是单击“确定”按钮,因为当您使用 user:pass 输入 URL 访问站点时,会显示一个不同的确认弹出窗口,仅显示“确定”或“取消”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-11
    • 2018-10-21
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多