selenium webdriver + java 元素定位时,style=-30px的问题

在使用Selenium WebDriver进行元素定位时,如果元素style为负值(如-bottom: -30px),会导致点击失败。解决方案有两种:1. 使用JavaScriptExecutor设置元素style为0,确保元素可见;2. 利用Selenium的鼠标事件,通过移动鼠标使元素显示,然后进行点击操作。
摘要由CSDN通过智能技术生成

问题描述:在对浏览器的某一元素进行定位时,该元素style如下图所示:


此时如果想click()‘更换头像’这一图标,会报错,因为该元素的style为负值,被设置在下层(在本例中为下降30px位置),只有鼠标移上去的时候才会显示,所以直接进行跳转到当前页面并click()该元素会失败。

解决办法:将该元素的style设置为0

                注意要设置整个模块的style,如果仅设置该元素的链接部分,还是会出问题(以上图为例,不能通过设置ClassName为‘js-avator-link’的元素style为0解决问题,要设置ClassName为‘update-avator’的元素style为0解决问题)

                Eclipse里具体实现代码如下:

                JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementsByClassName('update-avator')[0].style.bottom='0';");

备注:js的代码最好在控制台跑通之后再复制过来,因为控制台会给错误提示,可以避免一些简单的错误。

对于上述两句话的解释参照:https://blog.csdn.net/qq_20774073/article/details/80944047

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值