Как нажимать на элементы с поддержкой GWT с помощью Selenium и Python - PullRequest
1 голос
/ 13 июля 2020

Я работаю с Selenium как newb ie, а также как newb ie разработчик. Я пытаюсь решить этот XPath, но безрезультатно, поэтому я ищу помощь.

Итак, я хочу установить флажок, у которого есть динамический c id, но его не так просто найти этот флажок основан на tittle = "Viewers"

Обратите внимание, что есть целый список флажков с названиями справа от флажка в div, которые я хочу включить в свои тесты.

HTML:

<span class="row-selection"><input type="checkbox" value="on" id="gwt-uid-2215" tabindex="0"><label for="gwt-uid-2215"></label></span> <div class="row-label" title="Viewers">Viewers</div>

Снимок;

Предоставленный код

1 Ответ

0 голосов
/ 14 июля 2020

Желаемый элемент - это активированный элемент GWT , поэтому, чтобы щелкнуть элемент, который вы должны вызвать WebDriverWait для element_to_be_clickable(), вы можете использовать любой из следующих на основе Стратегия локатора :

  • Использование xpath на основе title attribute:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@title='Viewers']//preceding::span[1]//label"))).click()
    
  • Использование xpath на основе внутреннего HTML:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Viewers']//preceding::span[1]//label"))).click()
    
  • Примечание. : вам необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...