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

在selenium python中无法单击下拉菜单中的列表项

弓嘉纳
2023-03-14

下面是正确的错误消息:Traceback(最近的调用):文件“C:/users\shishir sinha/pycharmprojects/australia/australia.py”,第33行,in driver.find_element_by_xpath(“.//[@id='ui-menu-0-1']”)。单击()文件“C:\users\shishir sinha\appdata\local\programs\python\python36\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第309行,in find_element_by_xpath“,返回self.find_element(by=by.xpath,value=xpath)文件”\appdata\local\programs\python\python36\lib\site-packages\selenium\webdriver\remote\webdriver.py“,第787行,在find_element'value':value})['value']文件”C:\users\shishir sinha\appdata\local\programs\python36\lib\site-packages\python36\lib\site-packages\selenium\webdriver\remote\webdriver.py“,第252行,在execute self.error_handler.check_response(响应)文件”C:\users\shishir第194行,在check_response中升高exception_class(message,screen,stackt竞赛)Selenium.Common.Exceptions.NoSuChelementException:消息:没有这样的元素:找不到元素:{“方法”:“XPath”,“Selector”:“.//[@id='UI-Menu-0-1']”}(会话信息:Chrome=58.0.3029.110)(驱动程序信息:ChromeDriver=2.29.461591(62EBF098771772160F391D75E589DC567915B233),平台=Windows NT 10.0.14393 x86_64)

以下是网址的链接:https://stats.oecd.org/index.aspx?datasetcode=stan08bis

代码如下:

 _author_ = 'shishir'
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC



driver=webdriver.Chrome("C:\\Users\\shishir sinha\\AppData\\Local\\Programs\\Python\\Python36\\selenium\\webdriver\\chromedriver_win32\\chromedriver.exe")
driver.get("https://stats.oecd.org/Index.aspx?DataSetCode=STAN08BIS")



driver.find_element_by_xpath(".//*[@id='PDim_COU']").click()
driver.find_element_by_xpath(".//*[@id='PDim_COU']/option[1]").click()
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH, ".//*[@id='PDim_VAR']")))
driver.find_element_by_xpath(".//*[@id='PDim_VAR']").click()

action = webdriver.ActionChains(driver)


driver.find_element_by_xpath(".//*[@id='PDim_VAR']/option[3]").click()



WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, ".//*[@id='menubar-export']/a/span[1]/span[2]")))
driver.find_element_by_xpath(".//*[@id='menubar-export']/a/span[1]/span[2]").click()
driver.find_element_by_xpath(".//*[@id='menubar-export']/a/span[1]/span[2]").click()
action.move_to_element(driver.find_element_by_xpath(".//*[@id='menubar-export']/a/span[1]/span[2]"))
driver.find_element_by_xpath(".//*[@id='ui-menu-0-1']").click()

共有1个答案

池照
2023-03-14

实际的<select>元素很可能在页面上不可见,并且您在页面上看到的select是一个伪select元素,例如由或元素组成。鉴于样式本机选择的选项有限,这种情况现在变得越来越普遍。因此,许多框架用更好看的组件“覆盖”它们,并通过JavaScript将逻辑委托给隐藏的底层select。解决方案是找到实际可见的元素并单击它们,而不是或使用driver.execute_script(...)通过JavaScript驱动小部件。

 类似资料:
  • 嗨,我正在尝试自动启动下拉菜单。默认情况下,它的可见性是隐藏的。将鼠标悬停在它上面时,它的可见性属性显示为可见。我可以单击下拉菜单,但是在单击下拉菜单后,我的selenium脚本不能从下拉菜单中选择值。 错误:线程"main"org.openqa.selenium.ElementNotVisibleException异常:无法单击元素 HTML代码段

  • 我试图创建一个自动的网络会话,我登录到一个网站,并从下拉框中选择一个选项。我能够使用硒进入页面,但我无法点击打开下拉菜单的栏,然后选择我想要的选项。这是页面的截图,它的超文本标记语言代码:[![在此输入图像描述][1]][1][![在此输入图像描述][2]][2] 我想单击下拉列表中的“降级性能”选项。我有点被困在这里,因为下拉列表的HTML与[this one][3]根本不相似(无法“选择”)。

  • 我试图简单地点击下拉列表,在我输入单词前进后显示。但是我总是被抛出一个错误。线程“main”org.openqa.selenium.NoSuChelementException:没有这样的元素:无法找到元素:

  • 我有在下拉列表中选择每个选项的测试用例,但无论我目前做什么,我都会遇到这个错误。 结果消息:系统。InvalidOperationException:元素在点(1170.0333251953125405.4250030517578)处不可单击,因为另一个元素遮挡了它 目前正试图用这个代码改变年份 - WebElement是这样定义的 这是selenium尝试选择拾取时下拉列表的样子。我看不到任何东

  • 问题内容: 我需要建立一个包含5个选项的菜单,单击某个菜单后,将出现一个新的子菜单。我完全不知道该怎么做。 问题答案: CSS没有点击处理程序。因此,不可能使用标准CSS。您可以使用一种称为“复选框hack”的方法,但是我谦虚地认为,它有点笨拙,并且会像您的用例要求那样在导航菜单中使用,这很尴尬。因此,我建议使用jQuery或Javascript。这是使用jQuery的一种非常简单的解决方案。 基

  • 我正在开发一个IBM BPM portal,它在列表框旁边有下面的下拉箭头,需要单击以显示DOM结构中的列表项。 null null 图像:在此输入图像描述 手动单击图像后,将出现以下列表项。 null null 我尝试了以下选项点击下拉列表旁边的图像。 代码1:int xOffset=0,yOffset=0;Actions Actions=新操作(driver); WebElement Tree