selenium webdriver + java 在进行元素定位时,元素不可见的问题(display:none)

问题描述:在对浏览器页面元素进行定位时,有时无论用id,className还是xpath,

                都报错:Element is not currently visible and so may not be interacted with

                此时,打印该元素的isDisplayed(),如:

                System.out.println(driver.findElement(By.className("xa-login")).isDisplayed());

                此时后台打印结果为:false

                说明此时当前页面被设置为不可见,所以找不到也无法对其进行操作。

解决办法:利用JavaScript语句,将该元素设置为可显示

                在Eclipse里具体写法如下:

                JavascriptExecutor js = (JavascriptExecutor) driver;//将driver转换为js

                js.executeScript("document.getElementsByClassName('xa-login')[0].style.display='block'");

                划重点1:document.getElementsById/ClassName...都可以,看元素提供了哪一项,在使用ClassName时要注意是 否有重复的名字,若有,会报错或者找错;

               划重点2:document.getElementsByClassName(‘?’),?的位置是想要更改的元素的ClassName;

               划重点3:[0],是选择的要更改的项,我的例子中,getElementsByClassName只检测出一项,所以更改该项,如果   检测出若干项,要仔细比对自己要修改的项的位置;

               划重点4:display='block',block关键字将display设置为可见,相反的,如果想将display设置为不可见,可通过

display='none'实现。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值