[Python] [Selenium] Ошибка в «.find_element_by_class_name.click ()» - PullRequest
0 голосов
/ 10 ноября 2019

Ниже приведен мой тестовый код 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()

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Эта проблема возникает из-за того, что 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);
0 голосов
/ 10 ноября 2019

Ваша проблема может быть решена с помощью 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')
...