下面是我的Python Selenium测试代码。它在google.com上搜索“迪拜到新加坡”。工作正常。
但是,当我将代码修改为以下两种方式时,遇到以下错误:
---------------------------------------------------------------------------------------------
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(Session info: chrome=78.0.3904.97)
---------------------------------------------------------------------------------------------
删除第8和9行
我删除了这些行,因为我认为这些不是必需的。
除此之外,代码上没有任何更改。
搜索“迪拜到新加坡步行”
我刚刚在搜索关键字的末尾添加了“步行”。
除此之外,代码上没有任何更改。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.google.com/en")
driver.find_element_by_name("q").send_keys("Dubai to singapore")
print(driver.find_element_by_name("btnK").get_attribute("value")) #print: Google Search
print(driver.find_element_by_name("btnI").get_attribute("value")) #print: I'm feeling lucky
search_button = driver.find_element_by_name("btnK")
search_button.click()
您的问题可以用PyAutoGUI解决(确保先安装它)
from selenium import webdriver
import pyautogui
driver = webdriver.Chrome()
driver.get("https://www.google.com/en")
driver.find_element_by_name("q").send_keys("Dubai to singapore by walking")
pyautogui.keyDown('enter')
发生此问题的原因是search_button = driver.find_element_by_name("btnK")
由于该列表而被隐藏。如果您想解决此问题,请参考以下代码。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
driver.set_page_load_timeout("10")
driver.get("http://google.com")
element=driver.find_element_by_name("q")
element.send_keys("Dubai to singapore")
element.send_keys(Keys.RETURN);