使用JavaScript解决页面元素隐藏的问题

如果你是用selenium做web端的自动化的话,应该遇到过一下情形:


页面中的元素是隐藏的,必须经过某个操作才能使元素显示

而只有元素显示了,click()函数才能够点击到它;


我在项目中遇到了这样的情况,就使用moveToElement()的方式解决了这个问题

但是在做兼容性测试的过程中发现,moveToElement()函数在Safari浏览器中无效


为了解决这个问题,查阅了一些资料以后,找到了如此的解决方法:


public void addStyleToElement(WebElement we) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		try {
			js.executeScript("arguments[0].setAttribute(\"style\",\"display: inline-block;\");", we);
		} 
		catch (Exception e) {
			throw e;
		}
	}

we代表目标元素

使用element的setAttribute('style','value')这个函数将目标元素的样式修改

这样元素就能够正常在页面中显示,也就可以对其进行操作了。


花了我半天的时间找出来的解决方法,希望能够帮到有类似困扰的小伙伴们。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值