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

菜单项上的Selenium访问范围不可选

黄弘盛
2023-03-14

我在Python上使用硒刮擦。

基于javascript错误:未能在“Document”上执行“elementsFromPoint”:提供的双精度值是非有限的。我已尝试访问第五个菜单项的第二个元素。按id选择可以,但菜单项似乎无法访问。html

<li class="k-item k-state-default" role="menuitem">
   <span class="k-link">
      <span class="undefined "i="">Budynki</span></span></li>`

代码试用:

dataset_drop_down_element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*[@title = 'Informacja o obiektach mapowych']")))`

错误:

 dataset_drop_down_element = Select(dataset_drop_down_element)
 Select only works on <select> elements, not on <span>

 dataset_drop_down_element.send_keys('Budynek')
 Message: element not interactable

 driver.find_element_by_xpath('//*[@title="Informacja o obiektach mapowych"]/span[2]').click()
 Message: element not interactable

共有1个答案

慕冠宇
2023-03-14

要单击文本为Budynki的元素,需要将元素的WebDriverWait引导为可点击(),并且可以使用以下定位策略:

>

  • 使用XPATH

    driver.get("https://goleniowski.webewid.pl/e-uslugi/portal-mapowy")
    WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//span[@title='Informacja o obiektach mapowych']/span"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@data-role='popup']//li/span/span[text()='Budynki']"))).click()
    

    注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

  •  类似资料:
    • 问题内容: 如果我有以下控制器: 读出的正确方法是什么?如果有必要定义中,也不会使它语义上不正确假设是描述相关的东西的属性,而不是? 更新: 对此进行进一步的思考,如果一个孩子有多个孩子,将会在检索上产生冲突。我的问题是,什么是访问的正确方法是从? 问题答案: AngularJS中的作用域使用原型继承,当在子作用域中查找属性时,解释器将从子对象开始查找原型链,并继续寻找父对象,直到找到该属性为止,

    • 授权端点和令牌端点允许客户端使用“scope”请求参数指定访问请求的范围。反过来,授权服务器使用“scope”响应参数通知客户端颁发的访问令牌的范围。 范围参数的值表示为以空格分隔,大小写敏感的字符串。 由授权服务器定义该字符串。如果该值包含多个空格分隔的字符串,他们的顺序并不重要且每个字符串为请求的范围添加一个额外的访问区域。 scope = scope-token *( SP scope-to

    • 根据前面关于SO的问题,比如这个问题(selenium-python-drol-down menu选项值),我首先尝试了使用Selenium进行下拉菜单操作的基本方法,即以以下方式使用其方法: 当选择“按值”时,我得到一个错误。因此,我尝试使用So上提供的其他解决方案进行一些故障排除(参见此处:使用selenium python从下拉选项中选择一个值),例如通过元素的XPath找到它,然后单击它。

    • 我正在尝试单击一个菜单项,但是没有菜单项的webelements。 未单击菜单项时,web元素显示为: 单击菜单项后,Button标记就会改变。然而,菜单项的元素仍然是隐藏的。 菜单和单击后的图像在span标记中更改

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

    • 问题内容: 感谢您提供有关此错误的帮助。- 毫不费劲地搜寻我的解决方案 是的,我尝试过 基于PS Debian的操作系统 问题答案: 因此在linux上;对于防锈应用,这是这里的文档 有关gecko-driver的更多文档,请点击此处 说明一个 Ubuntu的 基础系统。 如果编译对您不起作用,那么github上也会有预编译的二进制文件。