当前位置: 首页 > 知识库问答 >
问题:

硒。常见的例外情况。ElementNotVisibleException:Python错误

陶乐生
2023-03-14

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

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

错误消息说:

回溯(最近一次呼叫最后一次):
浏览器。通过xpath(“//*[@id=\”过滤器控制容器\“]/div[3]/div/div/ul/li[4]/a/span”)查找元素。单击文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py”,第80行,单击self_执行(命令。单击元素)文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py”,第501行,在执行返回self中_父母亲执行(命令,参数)文件“C:\Python27\lib\site packages\selenium\webdriver\remote\webdriver.py”,第308行,执行self。错误处理程序。在check\u response raise exception\u class(message,screen,stacktrace)Seleniu中的第194行,检查响应(response)文件“C:\Python27\lib\site packages\selenium\webdriver\remote\errorhandler.py”。常见的例外情况。ElementNotVisibleException:消息:element不可见(会话信息:chrome=62.0.3202.94)(驱动程序信息:chromedriver=2.33.506120(E3E5343736286C0BC2DC9AA4915BA81D9023F),平台=Windows NT 10.0.15063 x8664)

我认为错误试图告诉我元素不可见?我怎么才能修好它?我尝试添加time.sleep(10)。

共有1个答案

孔阳炎
2023-03-14

>

  • 在最后一次单击之前--您应该打开下拉菜单:

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

  •  类似资料:
    • 我有以下代码。。。 ...执行以下操作: 实例化web驱动程序 导航到页面 点击页面上的按钮,打开一个新窗口 切换到新窗口 单击新窗口中的另一个按钮 不幸的是,单击第一个按钮后,新窗口从未打开,程序终止时出现以下错误: 今天之前一切都很好,我不知道发生了什么。有什么想法吗?

    • 这是我的代码脚本: 运行此脚本时,我遇到以下错误: 我已经编辑了我的可执行路径chrome驱动程序,但当我运行脚本时,我的chrome驱动程序打开,但在那之后卡住了2-3分钟,然后崩溃与上述以下错误。

    • 所以我在一台电脑上用硒做了一个程序,成功了,现在在另一台电脑上使用它,我得到了这个错误: selenium.common.exceptions.WebDriver异常:消息:无法连接到服务chrome驱动程序 现在,同样的问题也被提到了: Selenium python:无法连接到服务%s“%self.path” Selenium python:无法连接到服务%s“%self.path” Sele

    • 我正在使用Selenium编写一些代码,有一次我提出了7个请求,所有请求都指向不同的网站。对于第一个,这很好。但是,对于其他人,我得到一个会话ID错误。我认为我的浏览器配置正确,因为我确实从第一个网站获得了结果。我试着在两个请求之间放置一个WebDriverWait,但没有效果。我想这些网站可能会阻止我的请求。有人知道如何解决这个问题吗? 我很抱歉,如果这是愚蠢的事情,或者如果我做错了什么,我是新

    • 我正在实现与Android应用程序通信的服务器端应用程序。Android应用程序在最初与C服务器通信之前就已经实现了。现在我想用java代码替换C服务器。Android应用程序与服务器进行通信,通过读卡器中的卡对此人进行身份验证。 身份验证协议包含应用程序和服务器之间要成功完成的几个通信步骤。 应用程序和服务器之间的消息格式如下: 首先,应用程序发送一个类型1的请求来建立与读卡器中sim卡的连接。

    • 本文向大家介绍Nginx常见的错误配置举例,包括了Nginx常见的错误配置举例的使用技巧和注意事项,需要的朋友参考一下 Nginx是当前主流的Web服务。 以下是一些最常见的错误配置。 Missing root location root指令指定Nginx的根目录。 在上面的示例中,根目录是/etc/nginx,这意味着我们可以访问该目录下的文件。 上面的配置没有/的位置(location / {