添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
weixin_42636397 2018-11-28 05:39 采纳率: 100%
浏览 4877
已采纳

selenium无法定位非select的下拉框元素,请大神指教

这个下拉框不是select型的下拉框,所以不能用select_by_index("")的方法去定位,只能一步一步去点,我先用xpath找到下拉框,用此语句self.driver.find_element_by_xpath(“A”).click()可以点开下拉框(A为该下拉框的XPATH) ,并且展示里面的列表,但是再用self.driver.find_element_by_xpath(“//*[@id="cdk-overlay-3"]/div/div/ul/li[1]”).click()去点里面的某个值(括号里为下拉框里某个值得xpath),总是报错,后来尝试用键盘上下键来操作,如send_keys(Keys.DOWN)也报错,求大神看看到底问题出在哪
下面是html的截图,
图片说明
下拉框的值好像都隐藏了,点击标签展开看得到对应的值,我是直接点击那一行,如第一行“给水”右键复制的xpath为//*[@id="cdk-overlay-3"]/div/div/ul/li[1]
图片说明
到底是xpath写的不对 无法定位到下拉列表里的值 还是这个方法本身有问题呢?如果此控件不支持,为什么又可以点开下拉框呢,而且键盘操作也不行,这一点很匪夷所思

0

  • 编辑 收藏 删除 结题
  • 追加酬金 (90%的用户在追加酬金后获得了解决方案)

    当前问题酬金

    ¥ 0 (可追加 ¥500)

    支付方式

    扫码支付

    加载中...

    提供问题酬金的用户不参与问题酬金结算和分配

    支付即为同意 《付费问题酬金结算规则》

    3 条回答 默认 最新

    • 忧郁的梧桐树叶 2018-11-28 08:47
      关注

      首先,请不要偷懒使用chrome自带的copy xpath。做web自动化,xpath的基础是要有的。
      其次,截图较少,但是仍然可以看出来,这个下拉菜单中的节点还是比较容易定位的。我们要利用好需要定位的节点的上下文中有唯一属性的节点来辅助定位。
      从图1中可以模糊的看到,在“给水”节点上方的ul父节点有一个属性role="menu"比较特殊,那么就可以围绕着这个点来进行定位,那么“给水”这个节点的xpath就应该是:
      //ul[@role="menu"]/li[contains(text(),"给水")]

      那么在你点开下拉菜单后,就可以尝试用这个xpath去点击这个节点。

      希望有帮助。

      本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
      按下Enter换行,Ctrl+Enter发表内容
    查看更多回答(2条)

    报告相同问题?

    悬赏问题

    • ¥15 c#窗体设计器错误如何解决? 征集Python提取PDF文字属性的代码 如何联系真正的开发者而非公司 有偿求苍穹外卖环境配置 代码在keil5里变成了这样怎么办啊,文件图像也变了, Ue4.26打包win64bit报错,如何解决?(语言-c++) clousx6整点报时指令怎么写 远程帮我安装软件及库文件