我正在寻找一个有趣的程序,但是我在硒方面有一些问题, 我需要一些帮助……这是程序(我删除了 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
因此,我不是专家,但它说:元素不是相互联系的吗?这是什么意思 ,我该如何解决?我真的很感谢您的回复…
要将字符序列发送到网页中的搜索框, chrome://flags/#password_export-enable您需要诱导WebDriverWait, 并且可以使用以下解决方案:
chrome://flags/#password_export-enable
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")