Как нажать доступную кнопку, которая отказывается от клика? - PullRequest
1 голос
/ 29 октября 2019

Я работаю над автоматизацией одного сайта. Моя проблема в том, что кнопка, которая видна в моем селене (просто распечатывается), перестала работать после недавнего обновления. Даже если я это вижу, я не могу щелкнуть по нему. Я заметил, что он начал иметь динамический селектор идентификаторов, но класс остается стабильным. Что это может быть? Есть ли другой способ щелкнуть по нему?

<div>
    <div>
        <div class="pull-left middle-col-4">
            <!---->
        </div>
        <div class="pull-left middle-col-4">
            <!---->
        </div>
    </div>
    <button tabindex="-1" id="exit-button-ZpyYaHCdmZ5jnmaamGhjaJjFcsVrmJOUcZWVaZlsaGlolpOaZg" class="btn btn-inverse btn-large pull-right">Wyjście</button>
</div>

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Чтобы нажать на кнопку, вызовите WebDriverWait и element_to_be_clickable () И следуйте локаторной стратегии.

По Css Selector:

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button.btn.btn-inverse.btn-large.pull-right"))).click()

По Xpath:

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='btn btn-inverse btn-large pull-right' and starts-with(@id,'exit-button-')][text()='Wyjście']"))).click()

Для выполнения кода выше необходимо импортировать следующие элементы.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 29 октября 2019

Пожалуйста, найдите ниже решение, чтобы нажать кнопку выхода, если идентификатор является динамическим

1. Xpath и содержит метод

button=driver.find_element_by_xpath("//button[contains(text(), 'Wyjście')]")
button.click()

2. Название класса

element = driver.find_element_by_class_name("btn btn-inverse btn-large pull-right")
element.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...