[[Python] [Selenium]错误出现在“ .find_element_by_class_name.click()”上]

问题描述 投票:-1回答:2

下面是我的Python Selenium测试代码。它在google.com上搜索“迪拜到新加坡”。工作正常。

但是,当我将代码修改为以下两种方式时,遇到以下错误:

---------------------------------------------------------------------------------------------
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(Session info: chrome=78.0.3904.97)
---------------------------------------------------------------------------------------------
  1. 删除第8和9行

    我删除了这些行,因为我认为这些不是必需的。

    除此之外,代码上没有任何更改。

  2. 搜索“迪拜到新加坡步行”

    我刚刚在搜索关键字的末尾添加了“步行”。

    除此之外,代码上没有任何更改。

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()
python selenium click selenium-chromedriver
2个回答
0
投票

您的问题可以用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')

0
投票

发生此问题的原因是search_button = driver.find_element_by_name("btnK")由于该列表而被隐藏。如果您想解决此问题,请参考以下代码。

enter image description here

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);
© www.soinside.com 2019 - 2024. All rights reserved.