3 votes

Python - selenium obtient une erreur : Message : L'élément <g id="search"> n'est pas accessible au clavier.

L'url cible se lance bien, mais je ne parviens pas à comprendre pourquoi il ne saisit pas le texte type, "text".

code :

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.youtube.com/")

searchbox = driver.find_element_by_xpath('//*[@id="search"]')
searchbox.send_keys("test")

searchbutton = driver.find_element_by_xpath('//*[@id="search-icon-legacy"]')
searchbutton.click()

erreur :

Traceback (most recent call last):
  File "/Users/MacBook/Desktop/selenium_test.py", line 7, in <module>
    searchbox.send_keys("test")
  File "/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 479, in send_keys
    'value': keys_to_typing(value)})
  File "/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <g id="search"> is not reachable by keyboard

Merci d'avance.

1voto

Zack Henkusens Points 150

Solution complète :

#Type text into search box and hit search button on youtube   

from selenium import webdriver

driver = webdriver.Firefox() 
driver.get("https://www.youtube.com/")

## Changed ##
searchbox = driver.find_element_by_xpath('//input[@id="search"]')
#####
searchbox.send_keys("test")

searchbutton = driver.find_element_by_xpath('//*[@id="search-icon-legacy"]') 
searchbutton.click()

Résultat : enter image description here

Le seul problème était la queue :

searchbox = driver.find_element_by_xpath('//*[@id="search"]')

Aurait dû être défini comme un élément d'entrée, sinon il semble trouver un élément non valide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X