selenium.common.exceptions.ElementNotVisibleException:消息:元素无法使用Selenium进行交互

时间:2018-11-25 16:49:03

标签: python selenium google-chrome selenium-chromedriver webdriverwait

我正在寻找做一个有趣的程序,但是硒存在一些问题,我 需要一些帮助... 这是程序(由于文件夹名称包含其他人的名称,因此我删除了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

所以我不是专家,但它说:元素不相互联系?这是什么意思,我该如何解决?我非常感谢您的答复...

1 个答案:

答案 0 :(得分:0)

要将字符序列发送到网页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