Как исправить ошибку Python NoSuchElementException при нажатии на кнопку веб-страницы? - PullRequest
0 голосов
/ 29 октября 2019

В основном мне нужно нажать на кнопку, которая находится внутри фрейма на веб-странице. Я попытался:

1) Переключение на кадр, который работает нормально, не возвращает никаких ошибок:

driver.switch_to.frame(driver.find_element_by_css_selector('#iframe'))

3) Добавление задержки 20 секунд, которая не меняетсярезультат, как это только время ожидания в конце:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "dx-button"))).click()

Я считаю, что имя элемента CSS является правильным, так как я скопировал его с помощью Developer Mode -> Copy Selector.

Есть ли что-нибудь еще, что я могу сделать, чтобы селен нашел этот элемент CSS?

Ошибка перед добавлением временной задержки:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"dx-button"}

Ошибка после добавления временной задержки:

selenium.common.exceptions.TimeoutException: Message: 

Спасибо.

1 Ответ

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

Может быть проверить, является ли переключенный фрейм точным, у которого есть кнопка.

Если это правильно, можете ли вы попробовать ту же самую линию с локаторами XPATH?

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[contains(@class, 'button')]"))).click()
...