selenium.common.exceptions.ElementNotVisibleException: сообщение: элемент не взаимодействует с использованием Selenium

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

from selenium import webdriver
import webbrowser
import time


def Pass_send_():
    driver=webdriver.Chrome()
    driver.get('chrome://flags/#password_export-enable')


    ricerca=driver.find_element_by_id("search")
    ricerca.send_keys('password export')
    scorritore=driver.find_element_by_class_name('experiment-select')
    scorritore.click()



Pass_send_()

И поэтому цель проста: нужно открывать окна, набирать текст и нажимать кнопку. все работает, но щелчка нет, и это ошибка:

Traceback (most recent call last):
      File "C:\Python34\internet22.py", line 18, in <module>
Pass_send_()
  File "C:\Python34\internet22.py", line 14, in Pass_send_
scorritore.click()
  File "C:\Python34\lib\site- 
   packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Python34\lib\site- 
packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Python34\lib\site- 
packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Python34\lib\site- 
packages\selenium\webdriver\remote\errorhandler.py", line 242, in 
check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable

Так что я не эксперт, но там сказано: элемент несовместим? что это значит и как это исправить? я был бы очень признателен за ответ ...


person Scooterz Giovanni    schedule 25.11.2018    source источник
comment
Вы можете добавить time.sleep () после отправки ключей поиска. Поскольку для загрузки api может потребоваться время, поэтому если у вас есть 5-секундная задержка, это поможет вам решить эту проблему.   -  person Saurav Panda    schedule 25.11.2018
comment
хорошо, я попробовал, но это не сработало, однако я понял новую мощную функцию, так что большое вам спасибо ‹3   -  person Scooterz Giovanni    schedule 26.11.2018


Ответы (1)


Чтобы отправить последовательность символов в поле поиска на веб-странице chrome://flags/#password_export-enable, вам нужно вызвать WebDriverWait, и вы можете использовать следующее решение:

  • Блок кода:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    options = Options()
    options.add_argument('start-maximized')
    options.add_argument('disable-infobars')
    options.add_argument('--disable-extensions')
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
    driver.get('chrome://flags/#password_export-enable')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#search"))).send_keys("password export")
    
  • Снимок браузера:

chrome_password_export

person DebanjanB    schedule 25.11.2018
comment
Итак, ошибка исчезла, но она не работает .... он открывает страницу и набирает текст, но не нажимает кнопку - person Scooterz Giovanni; 26.11.2018
comment
Я думаю, потому что с вашим кодом программа ждет, пока кнопка не станет активной, но по какой-то причине, которую я не знаю, она не работает, поэтому программа продолжает ждать ... - person Scooterz Giovanni; 26.11.2018
comment
@ScooterzGiovanni В соответствии с вашим вопросом на шаге ... введите текст ... было ясно, что вы хотите отправить последовательность символов в поле поиска , вы никогда не рассказывали нам о том, какой ... нажать кнопку .... В соответствии с пробной версией кода find_element_by_class_name('experiment-select') определяет 690 элементов. - person DebanjanB; 26.11.2018