RobotFramework / Selenium Firefox: это событие не работает? - PullRequest
0 голосов
/ 10 января 2019

Я столкнулся с проблемой автоматизации процедуры тестирования на моем сайте. У меня там есть список предметов и - чтобы добавить новый - модальные открытия. Пока все хорошо - RobotFramework заполняет флажки и вводит текст, но когда дело доходит до кнопки «Сохранить», Chrome и Firefox по-разному.

Chrome делает все правильно, закрывая модальные и сохраняя новый элемент. Firefox, с другой стороны, тоже нажимает кнопку, но ничего не происходит. Код «позади» кнопки выглядит следующим образом:

<button id="submitSomething" type="submit" name="someName"
        value="Save" onclick="window.wishlist.editPreSubmit(this, event)">Save</button>
  • Python 2.7.x (последний) 32-битный
  • wxPython 2.8 32-битный
  • последний geckodriver 64 бит
  • хромированный драйвер 2,45

Я пытался что-то вроде:

Execute Javascript    document.querySelector("#submitNew").click()

вместо

Click Button    id=submitSomething

но без изменений в Firefox, к сожалению. Буду признателен за любую крошечную помощь:)

Edit: Если я использую

document.querySelector("#submitNew").click()

в консоли браузера, которая была открыта из роботизированной системы, она также не работает (firefox), и я получаю предупреждение:

форма, размещенная в кодеке windows-1252, должна быть изменена на utf-8

Br

1 Ответ

0 голосов
/ 11 января 2019

Чтобы щелкнуть по нужному элементу, вам нужно активировать WebDriverWait , чтобы элемент был кликабельным , и вы можете использовать любое из следующих решений:

  • Wait Until Element Is Visible:

    Wait Until Element Is Visible    xpath=//button[@id='submitSomething' and @value='Save'][contains(., 'Save')]    20  seconds
    Set Focus To Element    xpath=//button[@id='submitSomething' and @value='Save'][contains(., 'Save')]
    # invoke click
    
  • Wait Until Element Is Enabled:

    Wait Until Element Is Enabled    xpath=//button[@id='submitSomething' and @value='Save'][contains(., 'Save')]    20  seconds
    Set Focus To Element    xpath=//button[@id='submitSomething' and @value='Save'][contains(., 'Save')]
    # invoke click
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...