首页 文章

selenium.common.exceptions.ElementNotVisibleException:Python错误

提问于
浏览
1

我有一个在大学练习的代码 . 我已经安装了所有的软件包,但我不知道问题出在哪里 . 这将是一个小刮刀,只是测试它...

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()

并且错误消息说:

Traceback(最近一次调用最后一次):browser.find_element_by_xpath(“// * [@ id = \”filter-controls-container \“] / div [3] / div / div / ul / li [4] / a / span“) . 单击()文件”C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py“,第80行,单击self._execute(Command.CLICK_ELEMENT)文件”C:\ Python27 \ lib中\站点包\硒\的webdriver \远程\ webelement.py “线501,在返回_execute self._parent.execute(命令,则params)文件” C:\ Python27 \ lib中\站点包\硒\的webdriver \远程\ webdriver.py”,线路308,在执行self.error_handler.check_response(响应)文件 “C:\ Python27 \ lib中\站点包\硒\的webdriver \远程\ errorhandler.py”,线路194,在check_response提高exception_class(消息,屏幕,堆栈跟踪)selenium.common.exceptions.ElementNotVisibleException:消息:元素不可见(会话信息:铬= 62.0.3202.94)(驱动程序信息:chromedriver = 2.33.506120(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),平台= Windows NT的10.0 .15063 x86_64)

我认为错误试图告诉我该元素不可见?我该如何解决?我通过添加time.sleep(10)来尝试它 .

1 回答

  • 0
    • 在最后一次点击之前 - 您应该打开下拉菜单:
    browser.find_element_by_css_selector(".dropdown-menu.sort-options-dropdown").click()
    
    • 然后单击下拉列表中的最后一个选项(您在上一个操作中要执行的操作):
    ui.WebDriverWait(browser, 10).until(
        EC.visibility_of_element_located((By.XPATH, "//*[@id='filter-controls-container']/div[3]/div/div/ul/li[4]/a/span"))).click()
    

相关问题