Невозможно перейти к кнопке (очистка веб-страницы) - selenium.common.exceptions.NoSuchElementException: Сообщение: такого элемента нет: Невозможно найти элемент - PullRequest
0 голосов
/ 06 мая 2019

Я использую селен для очистки веб-страниц, и мне не удается заставить программу нажимать определенную кнопку.Вот конкретное сообщение об ошибке:

selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент

Я не уверен, что не так (я пробовал эти способыпопытаться перейти к кнопке, включающей:

driver.find_element_by_name("HTML-NAME").click()
driver.find_element_by_class("HTML-CLASS").click()
driver.find_element_by_id("HTML-ID").click()
driver.find_element_by_xpath("//a[@id='HTML-ID']").click()
driver.find_element_by_link_text("HTML-LINK-TEXT").click()

Вот соответствующий HTML-код кнопки, которую я пытаюсь нажать:

< a name="HTML-NAME" id="HTML-ID" ptlinktgt="CODE"tabindex="30" onclick="javascript:cancelBubble(event);" href="javascript:submitAction....." class="HTML-CLASS">BTN-TEXT </a

# My code right now

driver = webdriver.Chrome(executable_path="path/chromedriver")
url = "https://...."

driver.get(url)
time.sleep(5)

input_bar1 = driver.find_element_by_xpath("//input[@id='inp1']")
input1 = input("Username: ")
input_bar1.send_keys(username)

input_bar2 = driver.find_element_by_xpath("//input[@id='inp2']")
input2 = input("Password: ")
input_bar2.send_keys(password)

input_bar2.submit()
time.sleep(5)

elem = driver.find_element_by_link_text("BTN-TEXT")
elem.click()
time.sleep(20)

1 Ответ

0 голосов
/ 06 мая 2019

Я бы порекомендовал вам увеличить время ожидания после отправки. Возможно, браузер должен что-то загрузить (после отправки), и вы пытаетесь щелкнуть элемент, прежде чем он будет сгенерирован в DOM. (TIPP: число в ожидании (число) - это время в миллисекундах. Поэтому вы ждете 5 миллисекунд, прежде чем пытаться щелкнуть элемент BTN-TEXT. Попробуйте увеличить это число.

...