我在 SeleniumIDE 中,但调用了 javascript。
对于其他人来说,这似乎也是一个相当普遍的场景。
我有一个很好的测试套件,但它做的第一件事就是登录。
我希望套件在启动时确保我已注销,如果没有,请将我注销。 我可以通过“注销”超链接判断我是否已登录
但如果我当前已登录,我只想单击注销,否则我什么都不想做,因为如果我尚未登录,则尝试单击不存在的元素会引发错误)
所以逻辑上是这样的:
if ui element(logout link in my case) exists
click on logout link
else
do nothing
end
我正在使用 Selenium IDE 并调用 javascript - 鉴于我不能在基本的 seleniumIDE 中执行 if then
我希望我可以在 javascript 本身中执行此操作。
类似于:
store javascript{if ([a with text 'Logout' exists]) then click on it end;} id1
虽然不是点击它[this]
,但如果我只是访问 url 也可以(虽然更脆弱)
http://my-apps-domain/users/sign_out
但我不确定确切的语法。
相关的 HTML 是:
<li><a href="/users/sign_out">Logout</a></li>
如果它存在,我想点击 a(或直接访问 url),否则什么都没有。
如果可能,我想找到一个非 jquery 的解决方案。
更新:我发现即使 javascript{window.location.replace('http://google.com') }
也会关闭我的 seleniumIDE 窗口并将其替换为 google 但不影响测试本身运行的实际窗口。
最佳答案
在原始 JavaScript 中触发点击事件可能很棘手(查看此答案:https://stackoverflow.com/a/10339248/2386700)
但是,如果您还可以使用 jQuery,那将简化事情。例如,如果注销按钮的 ID 类似于“注销”,那么您可以这样做:
var logoutButton = $('#logout');
if (logoutButton != null) {
logoutButton.click();
}
关于javascript - 什么是仅单击链接(如果存在)的 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029755/