Python3 Selenium Button Нажатие на проблему - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу нажать кнопку, как показано на следующем рисунке с Selenium enter image description here

Я пишу свой код так:

try:
    browser.find_element_by_xpath("//a[@href='/portal/site/16/801']").click()
except Exception as e:
    print(e)

Но он всегда показывает ошибку, он не может найти элемент. Вот HTML-код того, что я хочу щелкнуть.

<a href="/portal/site/16/801" data-blackname="16" title="课程网站">
                                        <img src="/access/img//site/16.png" class="media-icon" onerror="this.src='/resources/images/app-default-icon2.png'">

                                        <h5><i class="icon-ok"></i>课程网站</h5>

Может кто-нибудь помочь мне решить проблему?Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Как уже говорилось, используйте явные ожидания вместо случайного сна.Если нижний предел недостаточен для того, чтобы кнопка была кликабельной, то это обязательно сделает ошибку случайной.

Явное ожидание используется, чтобы указать веб-драйверу ждать определенных условий (ожидаемых условий).В этом случае кнопка должна быть интерактивной.явное ожидание по умолчанию проверяет каждые полсекунды, выполняется ли условие или нет.

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[@href='/portal/site/16/801']"))).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 голосов
/ 30 апреля 2019

Добавление случайного сна после использования Selenium для отправки имени пользователя, пароля и ENTER. Работает

time.sleep(random.randint(3,6))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...