更新
经过进一步调查,实际上发生了什么,当使用jquery检查复选框时,下一步是单击按钮进行保存。好吧,由于某些未知原因,复选框正在取消选中。
这里是jquery选择复选框:
string jsStmt = @"
$(function(){
$(':checkbox').filter(function(){
return $(this).parent().next('td').text() === 'Label to look for';
}).prop('checked', true);
});
";
IJavaScriptExecutor js = (IJavaScriptExecutor)_driver;
js.ExecuteScript(jsStmt);
我可以看到复选框被选中,然后当对话框关闭时我可以看到它被取消选中了吗?
OP:
Selenium测试的按钮点击事件已经工作了一段时间。突然间,它不再起作用了。只有可能的改变才是第三方css改变,但我不知道它能做什么。
按钮有点埋没在图层中,但是,Selenium检查的复选框仍然可以正常工作,这就是需要点击按钮的原因。
我可以调试,看看Selenium正在找到按钮。看来按钮被点击了,但回发事件没有发生。
我可以在点击事件之前停止执行并打开开发人员工具并手动输入语句以点击按钮,这样就行了!
我甚至尝试用JavaScriptExecutor执行点击而没有运气。
我很失落为什么它没有发射回发事件。
答案 0 :(得分:1)
简而言之,请尝试使用IWebElement
而不是javascript
点击该复选框。
我建议尽量避免在硒测试中使用IJavaScriptExecutor
因为它可能导致执行用户实际上无法通过简单交互执行的功能,或者使这些功能的行为与您的行为不同期望,因为执行路径不同于用户只是点击某些内容时所执行的操作。
我认为在这种情况下,您尝试将该框标记为checked
,这就是您的目标。