如何在 Selenium IDE 中的 JS 弹出窗口(身份验证)上单击 'OK' 或 'CANCEL'
How to Click 'OK' or 'CANCEL' on a JS popup (authentication) within Selenium IDE
我看了一遍又一遍,其他相关的帖子好像真的没有解决任何问题?!
首先,请不要说明如何在 Selenium WD 中执行此操作 - 我们了解此方法,但它不适用于我们的 UAT 测试。该工具是 Selenium IDE,我们只需单击 "OK" 或 "CANCEL"
Pre-condition:
Firefox 设置为记住 usernames/passwords,当向用户显示确认框时,您可以看到这一点:
- Window 的标题:需要身份验证
- Window 的内容:{{Site}} 正在请求您的用户名和密码
- Username/Password : 填写正确的凭据
我们只是想点击“确定”按钮。您无法检查该元素,因为它是 JS,我们只想知道单击此对话框中的 "OK" 或 "CANCEL" 按钮的最简单方法是什么。
我尝试了 StoreAlert、StoreConfirmation、ChooseOKOnNextConfirmation 和 ChooseCancelOnNextConfirmation,其中 none 似乎有效。
如果您回复,请在 "Command"、"Target" 和 "Value" 字段中具体说明。
我现在使用 AutoIt 以两种不同的方式成功地做到了这一点。我无法仅使用 selenium ide 来消费和处理弹出窗口。 SeleniumHQ.org 有关于如何处理提示、警报和对话框的示例,但 "Authentication Required" 弹出窗口不在范围内。
方法 #1:AutoIt 发送用户名、密码并单击 'ok' 按钮
- 执行发送用户名、密码的 AutoIt 脚本并单击 'ok' 按钮(该脚本应该循环等待下一步的弹出窗口)
- 执行 Selenium IDE 脚本,触发您正在测试的站点显示 "Authentication Required" 弹出窗口。这可能只是访问网站。
- 将 Selenium IDE 脚本置于睡眠状态(睡眠命令)
- AutoIt 脚本接管(见提示)并发送用户名、密码并单击 'ok' 按钮。 AutoIt 脚本终止
- Selenium IDE 脚本从睡眠中苏醒,继续测试用例的测试
方法二
- 执行单击 'ok' 按钮的 AutoIt 脚本(该脚本应该循环等待下一步的弹出窗口)
- 执行访问该站点但在该站点的 URL 中具有 user:pass 的 Selenium IDE 脚本。
- 将 Selenium IDE 脚本置于睡眠状态(睡眠命令)
- AutoIt 脚本接管(看到提示)并发送并单击 'ok' 按钮。 AutoIt 脚本终止
- Selenium IDE 脚本从睡眠中苏醒,继续测试用例的测试
总结:方法#1使用AutoIt脚本进入用户,通过并点击'ok'按钮。方法#2 使用 AutoIt 脚本只是为了单击 'ok' 按钮,因为当您在 URL 中使用 user:pass 访问站点时,会显示一个不同的确认弹出窗口,仅显示 'ok' 或 'cancel'.
我看了一遍又一遍,其他相关的帖子好像真的没有解决任何问题?!
首先,请不要说明如何在 Selenium WD 中执行此操作 - 我们了解此方法,但它不适用于我们的 UAT 测试。该工具是 Selenium IDE,我们只需单击 "OK" 或 "CANCEL"
Pre-condition: Firefox 设置为记住 usernames/passwords,当向用户显示确认框时,您可以看到这一点:
- Window 的标题:需要身份验证
- Window 的内容:{{Site}} 正在请求您的用户名和密码
- Username/Password : 填写正确的凭据
我们只是想点击“确定”按钮。您无法检查该元素,因为它是 JS,我们只想知道单击此对话框中的 "OK" 或 "CANCEL" 按钮的最简单方法是什么。
我尝试了 StoreAlert、StoreConfirmation、ChooseOKOnNextConfirmation 和 ChooseCancelOnNextConfirmation,其中 none 似乎有效。
如果您回复,请在 "Command"、"Target" 和 "Value" 字段中具体说明。
我现在使用 AutoIt 以两种不同的方式成功地做到了这一点。我无法仅使用 selenium ide 来消费和处理弹出窗口。 SeleniumHQ.org 有关于如何处理提示、警报和对话框的示例,但 "Authentication Required" 弹出窗口不在范围内。
方法 #1:AutoIt 发送用户名、密码并单击 'ok' 按钮
- 执行发送用户名、密码的 AutoIt 脚本并单击 'ok' 按钮(该脚本应该循环等待下一步的弹出窗口)
- 执行 Selenium IDE 脚本,触发您正在测试的站点显示 "Authentication Required" 弹出窗口。这可能只是访问网站。
- 将 Selenium IDE 脚本置于睡眠状态(睡眠命令)
- AutoIt 脚本接管(见提示)并发送用户名、密码并单击 'ok' 按钮。 AutoIt 脚本终止
- Selenium IDE 脚本从睡眠中苏醒,继续测试用例的测试
方法二
- 执行单击 'ok' 按钮的 AutoIt 脚本(该脚本应该循环等待下一步的弹出窗口)
- 执行访问该站点但在该站点的 URL 中具有 user:pass 的 Selenium IDE 脚本。
- 将 Selenium IDE 脚本置于睡眠状态(睡眠命令)
- AutoIt 脚本接管(看到提示)并发送并单击 'ok' 按钮。 AutoIt 脚本终止
- Selenium IDE 脚本从睡眠中苏醒,继续测试用例的测试
总结:方法#1使用AutoIt脚本进入用户,通过并点击'ok'按钮。方法#2 使用 AutoIt 脚本只是为了单击 'ok' 按钮,因为当您在 URL 中使用 user:pass 访问站点时,会显示一个不同的确认弹出窗口,仅显示 'ok' 或 'cancel'.