ElementNotVisibleException: Сообщение: элемент не взаимодействует в Robot Framework - PullRequest
0 голосов
/ 01 ноября 2018

Пример кода:

<div class="modal-footer">
   <button type="button" class="btn btn-primary btn-block" data-modal="AlertSubmitApproval" id="btn_close_modal">ตกลง</button>
</div>

Я пытаюсь нажать кнопку id="btn_close_modal", но кажется, что кнопка не видна, а реакция робота ElementNotVisibleException: Message: element not interactable, несмотря на то, что я могу нажать вручную.

Код моего робота:

Request approve
Selenium2Library.Click Element   &{Landing}[reqApprove]
Sleep   2s
Selenium2Library.Click Element   &{Landing}[cofReq]
Sleep   2s
Selenium2Library.Wait Until Page Contains Element     id=btn_close_modal    timeout=20s
Sleep   3s
Selenium2Library.Click Element   id=btn_close_modal

Как я могу нажать кнопку id=btn_close_modal, пожалуйста, кто-нибудь может помочь.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Требуемый элемент находится в Модальном диалоговом окне , поэтому вам нужно заставить WebDriverWait , чтобы элемент был видимым / активным , и вы можете использовать либо оба (объединение) следующих решений:

  • Wait Until Element Is Visible:

    Request approve
    Selenium2Library.Click Element   &{Landing}[reqApprove]
    Sleep   2s
    Selenium2Library.Click Element   &{Landing}[cofReq]
    Sleep   2s
    Selenium2Library.Wait Until Element Is Visible     xpath=//button[@class="btn btn-primary btn-block" and @id="btn_close_modal"]    timeout=20s
    Sleep   3s
    Selenium2Library.Click Element   xpath=//button[@class="btn btn-primary btn-block" and @id="btn_close_modal"]
    
  • Wait Until Element Is Enabled

    Request approve
    Selenium2Library.Click Element   &{Landing}[reqApprove]
    Sleep   2s
    Selenium2Library.Click Element   &{Landing}[cofReq]
    Sleep   2s
    Selenium2Library.Wait Until Element Is Enabled     xpath=//button[@class="btn btn-primary btn-block" and @id="btn_close_modal"]    timeout=20s
    Sleep   3s
    Selenium2Library.Click Element   xpath=//button[@class="btn btn-primary btn-block" and @id="btn_close_modal"]
    
  • Подробное обсуждение Wait Until Element Is Visible и Wait Until Element Is Enabled можно найти в Роботизированная конструкция: Selenium2Lib: Wait Пока (…) Ключевые слова

  • Ссылка: Selenium2Library

0 голосов
/ 01 ноября 2018

попробуйте использовать это,

Click Element       //button[@id='btn_close_modal']

или попробуйте использовать Java-скрипт executor,

Wait Until Page Does Not Contain   NOBODY SELECTED
Execute JavaScript  $("#btn_close_modal").click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...