当我执行登录测试时,会有一个新的弹出窗口,没有任何按钮可以关闭。 因此,在chrome devtools中,我可以使用以下命令关闭: $(“。notouch”)。remove() 而且有效。 现在如何使用机器人框架执行此行? 我试过了:
Execute JavaScript document.getElementByClass("//[@class='notouch']").remove()
然后我收到了此消息:
FAIL:WebDriverException:消息:未知错误:Runtime.evaluate 在参数列表(会话)之后引发异常:SyntaxError:缺少) 信息:chrome = 68.0.3440.106)
答案 0 :(得分:0)
假设页面已加载jquery,它应该可以将与开发人员控制台中使用的完全相同的代码传递给Execute Javascript
:
execute javascript $('.notouch').remove()
在/tmp/example.html中提供此html文件:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
</head>
<body>
blah blah blah
<div id="notouch" class="notouch">This is the "notouch" div</div>
</body>
</html>
以下机器人测试顺利通过:
*** Settings ***
Library Selenium2Library
Suite teardown close all browsers
Suite Setup open browser about:blank chrome
*** Test Cases ***
Example
go to file:///tmp/example.html
page should contain This is the "notouch" div
execute javascript $('.notouch').remove()
page should not contain This is the "notouch" div
答案 1 :(得分:-1)
如果我错了,请纠正我,但是您在getElementByClass
函数中使用了xpath表示法。试试这个:
Execute JavaScript document.getElementsByClassName('notouch')[0].remove();