如何使用机器人框架执行jQuery?

时间:2018-10-16 19:23:08

标签: javascript jquery robotframework

当我执行登录测试时,会有一个新的弹出窗口,没有任何按钮可以关闭。 因此,在chrome devtools中,我可以使用以下命令关闭: $(“。notouch”)。remove() 而且有效。 现在如何使用机器人框架执行此行? 我试过了:

Execute JavaScript    document.getElementByClass("//[@class='notouch']").remove()

然后我收到了此消息:

  

FAIL:WebDriverException:消息:未知错误:Runtime.evaluate   在参数列表(会话)之后引发异常:SyntaxError:缺少)   信息:chrome = 68.0.3440.106)

2 个答案:

答案 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();