Ошибка генерации селена "Элемент не взаимодействует" - PullRequest
0 голосов
/ 17 октября 2018

enter image description here

Я пытаюсь использовать Selenium, чтобы нажать кнопку, выделенную выше.У меня нет проблем с поиском элемента через:

download_button_path = "//button[@class='btn-primary']"
download_button = driver.find_element_by_xpath(download_button_path)

Однако, когда я пытаюсь выполнить

download_button.click()

, я получаю сообщение об ошибке:

ElementNotVisibleException: Message: element not interactable
  (Session info: chrome=70.0.3538.67)
  (Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.11.6 x86_64)

Кажетсякнопка не видна для селена, хотя я могу видеть ее при ручном нажатии.

Я также пытался навести курсор на кнопку и затем щелкнуть, а также отправить ключ ввода / возврата на кнопку, но ничего не работает.

Любое понимание будет оценено.

1 Ответ

0 голосов
/ 17 октября 2018

В HTML я вижу, что btn-primary присутствует в модальном всплывающем окне начальной загрузки.Таким образом, может быть другой btn-primary за модальной популярностью.Xpath будет находить элемент, который находится за модальным, который не взаимодействует.

btn-primary class - это обобщенный класс в начальной загрузке, который будет использоваться во всех кнопках brimary.Попробуйте использовать уникальный локатор со ссылкой на модальный элемент как родитель в вашем локаторе

download_button_path = "//[@class='lmn-edititem-modal']/../[@class=''btn-primary']"
wait = WebDriverWait(driver, 10)
download_button = wait.until(EC.visibility_of_element_located((By.XPATH, download_button_path)))
download_button .click()

Мы также можем попробовать это с помощью селектора css

driver.find_elements_by_css_selector(".lmn-edititem-modal .btn-primary") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...