I have a code for an exercise at the university. I have installed all the package, but I don't know where the problem is. It's going to be a small scraper, just testing it out...
import requests # http requests
from lxml import html # html code --> xml tree
from selenium import webdriver # Selenium
driver = webdriver.Chrome(executable_path=r'C:\python27\chromedriver.exe')
from selenium.webdriver.common.keys import Keys # keyboard inputs
import time # functions using time
# In[89]:
browser = webdriver.Chrome() # Use Google Chrome Browser
# In[90]:
url = "http://www.hm.com/de/" # place URL here
#request website code
browser.get(url)
# In[91]:
# find body element
body_element = browser.find_element_by_tag_name("body")
# scroll up and down
body_element.send_keys(Keys.PAGE_DOWN)
time.sleep(0.5)
body_element.send_keys(Keys.PAGE_DOWN)
time.sleep(0.5)
body_element.send_keys(Keys.PAGE_UP)
time.sleep(0.5)
body_element.send_keys(Keys.PAGE_UP)
# In[92]:
#select search bar
search_field = browser.find_element_by_id("search-input")
# In[93]:
search_field.send_keys("Weihnachten") # insert search term
# In[94]:
#click searching button
browser.find_element_by_id("make-search-icon").click() # insert ID here
time.sleep(10)
# In[95]:
#click order button
browser.find_element_by_xpath("//*[@id=\"filter-controls-container\"]/div[3]/div/div/ul/li[4]/a/span").click()
And the error message says:
Traceback (most recent call last):
browser.find_element_by_xpath("//*[@id=\"filter-controls-container\"]/div[3]/div/div/ul/li[4]/a/span").click() File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click self._execute(Command.CLICK_ELEMENT) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 501, in _execute return self._parent.execute(command, params) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute self.error_handler.check_response(response) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementNotVisibleException: Message: element not visible (Session info: chrome=62.0.3202.94) (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.15063 x86_64)
I think the error tries to tell me that the element is not visible? How can I fix it? I tried it by adding time.sleep(10).