Как выполнить jquery с каркасом робота? - PullRequest
0 голосов
/ 16 октября 2018

когда я выполняю тест входа в систему, появляется новое всплывающее окно без какой-либо кнопки для закрытия.Поэтому в Chrome Devtools я могу закрыть с помощью следующей команды: $ (". Notouch"). Remove (), и это работает.Теперь, как я могу выполнить эту строку с рамкой робота?я попробовал это:

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

Затем я получил это сообщение:

FAIL: WebDriverException: Сообщение: неизвестная ошибка: Runtime.evaluate выбросил исключение: SyntaxError: отсутствует) после списка аргументов(Информация о сеансе: chrome = 68.0.3440.106)

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Предполагая, что на страницу загружен jquery, она должна передать тот же код в Execute Javascript, который вы используете в консоли разработчика:

execute javascript  $('.notouch').remove()

Учитывая этот HTML-файл в / tmp / example.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
0 голосов
/ 17 октября 2018

Поправьте меня, если я ошибаюсь, но вы используете нотацию xpath внутри функции getElementByClass.Попробуйте это:

Execute JavaScript    document.getElementsByClassName('notouch')[0].remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...