如果你是用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')这个函数将目标元素的样式修改
这样元素就能够正常在页面中显示,也就可以对其进行操作了。
花了我半天的时间找出来的解决方法,希望能够帮到有类似困扰的小伙伴们。