selenium下拉框踩坑埋坑

本文来自网易云社区

作者:王利蓉


最近web端全站重构,所有的页面都大大小小都有些变动,UI就全军覆没了,用例从登录改,改到个人信息页面发现根以前的实现方式完全不一样,这可怎么解决

1.以前的实现(option value的对应),现在是新页面 我就找个其他网站的参考下

b26ad583-750e-4a49-af14-61d7ce4ebb7a

<html>
    <head>
        <title>Select</title>
    </head>
    <body>
        <span>select demo</span>
        <select id = "s" name = "ns">
            <option value = "0">Op1</option>
            <option value = "1">Op2</option>
            <option value = "2">Op3</option>
            <option value = "3">Op4</option>
        </select>
    </body>
</html>

这种通过直接给value赋值即可,网上寻找解决方法也很多,脚本实现如下:

bot.click(By.xpath("//select[@id='birth-year']/option[@value='" + year + "']"));

2.重构之后的实现,选择时元素为隐藏状态,选择过程是联动的,找不到元素 哭!!

48135863-f70b-4ac9-9355-a0a7c752afb9

860e7fdc-1d49-49ed-8fc1-c1f086257d8f?imageView&thumbnail=980x0

这种该如何解决呢?开始的时候想采用第一种方法,隐藏的那个元素直接赋值,如红框所示,想想也是不可能的,于是就网上找解决方法,如何将隐藏的元素显示出来,果真还真被找到了,通过js,显示各种隐藏的元素。

js="var p=document.getElementByClassName('Select-value');p.style.display='block';"
driver.execute_script(js);
bot.click(By.xpath("//div[@aria-owns='react-select-5--list'][@aria-activedescendant='"+province+"']"));


网易云免费体验馆,0成本体验20+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区



相关文章:
【推荐】 数据分析入门:如何训练数据分析思维?
【推荐】 反射型 DDoS 攻击的原理和防范措施

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值