pythons+selenium, 下拉框非select选元素

下拉框的元素定位, 基本上select和非select两种。

select基本上通过selenium.webdriver.support.ui的Select进行定位。但是今天看到了非select的定位,并且下拉框的元素很多。

 

 第一次,for循环找出相应的text,但是首页中没展示出的省市就不能定位。结果失败了。

第二次, 用了actionchains的move_to_element,想要滚动条的元素定位并拖拽,但是没有。。

结果,不负众望失败了。

第三次,用了actionchains的move_by_offset, 想要鼠标来定位location,并拖拽滚动条,

还是失败了。鼠标的移动出问题。

:ERROR:device_event_log_impl.cc(214)] [17:57:35.419] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: 连到系统
上的设备没有发挥作用。 (0x1F)

我也呵呵了。。最后准备放弃的时候,想过js的execute.script。。看看有没有解决的方法。。

结果找到了一个。。

 上图就是解决的结果。

第一行,元素定位。(此前先激活下拉框)

第二行, JS定位

第三行,点击。

第四行是,我自己加的。。意思就是画面锚到最顶端,也是JS。 因为第二行JS定位后会滑倒下面。。比如下图

JS定位后会很多。。当然这是模拟的。。

再来click后画面定在次高度。。所以需要再回到最顶端。。

如果不需要最顶端, 也可以用 

driver.execute_script("window.scrollTo(0, 450)") 

来锚到自己想要的高度。。

这个问题花了我半天的时间呢。。

希望这篇文章有所大家的帮助。。

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值