Python Элемент селена Не взаимодействует - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблемы с send_keys(), любая помощь очень ценится.

ниже мой код

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait


browser = webdriver.Chrome('C:\\Users\johns\Downloads\chromedriver')
browser.get('https://www.youtube.com/')

searchbox=browser.find_element_by_xpath('//*[@id="search"]')
searchbox.send_keys('economics explained')

searchbutton = WebDriverWait(browser, 6).until(EC.presence_of_element_located((By.XPATH, '//*[@id="search-icon-legacy"]/yt-icon')))
browser.execute_script("arguments[0].click();", searchbutton)

Каждый раз, когда я запускаю программу, chrome вкладка всплывает и YouTube открывается, но searchbox.send_keys('economics explained') не работает вместо этого, я получаю это сообщение об ошибке.

File "C:/Users/johns/PycharmProjects/DABIGHIT/testing 2.py", 
line 11, in <module> searchbox.send_keys('economics explained')

File "C:\Users\johns\PycharmProjects\DABIGHIT\venv\lib\site-packages\selenium\webdriver\remote
\webelement.py", 
line 477, in send_keys self._execute(Command.SEND_KEYS_TO_ELEMENT),

File "C:\Users\johns\PycharmProjects\DABIGHIT\venv\lib\site-packages\selenium\webdriver\remote
\webelement.py",
line 633, in _execute return self._parent.execute(command, params)

File "C:\Users\johns\PycharmProjects\DABIGHIT\venv\lib\site-packages\selenium\webdriver\remote
\webdriver.py", 
line 321, in execute self.error_handler.check_response(response)

File "C:\Users\johns\PycharmProjects\DABIGHIT\venv\lib\site-packages\selenium\webdriver\remote
\errorhandler.py", 
line 242, in check_response raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

1 Ответ

0 голосов
/ 23 апреля 2020

ElementNotInteractableException происходит, когда элемент найден, но вы не можете взаимодействовать с ним.

Причин этому так много:

элемент не виден / не отображается элемент отключен Элемент экрана находится за другим элементом или скрыт

Вы можете попробовать следующее решение:

driver = webdriver.Chrome(executable_path=" path for chromedriver.exe")
url = 'http://www.youtube.com'
driver.get(url)
driver.maximize_window()
wait = WebDriverWait(driver, 20)
print(driver.title)

element = wait.until(EC.presence_of_element_located((By.XPATH, "//form[@id='search-form']//div[@id='container']//div[@id='search-input']//input[@id='search']")))

actionChains = ActionChains(driver)
actionChains.move_to_element(element).click().perform()
actionChains.move_to_element(element).send_keys("Test",Keys.RETURN).perform()

driver.maximize_window()

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...