Selenium - (new Actions(driver)).moveToElement(ele).click().perform() 页面没反应

使用findElement找到table中的某个元素ele后,执行点击:(new Actions(driver)).moveToElement(ele).click().perform(),但是页面没反应怎么办?

事实上,如果ele.isDisplayed()==true时不代表ele真的可见,ele有3种情况:完全可见、完全不可见 和 部分可见。

1. 完全可见

ele.click() 或 (new Actions(driver)).moveToElement(ele).click().perform() 就可以成功执行点击动作。

2. 完全不可见

ele.click() 似乎没效果

 (new Actions(driver)).moveToElement(ele).click().perform() 可以成功执行点击动作,因为moveToElement可以滚动屏幕使得元素移到可见位置,但这个功能对部分可见的元素并不产生作用。

3. 部分可见

这种情况下,有可能是水平滚动条遮住了该元素。

ele.click() (new Actions(driver)).moveToElement(ele).click().perform()两种方法都不能成功执行点击动作。

此时,应该先滚动窗口使它可见:

JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView(true);", ele);

然后执行:

ele.click()即可,当然执行(new Actions(driver)).moveToElement(ele).click().perform() 也可以。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值