1. WebElement 的 click()方法,如下条件时可以使用:
使用方法:
// WebElement webElement;已通过某种方式获取到webElement
webElement.click();
条件:
条件1:元素在HTML DOM中存在
条件2:元素display属性不为none
条件3:不存在元素堆叠(例如,可直接肉眼看到的元素等),或者存在元素堆叠,但是当前元素堆叠顺序高于其他元素,即未被其他元素遮盖(例如,登录页面被广告弹层遮盖,则登录页面中的元素无法使用此click方法)
概念:z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
2. JavaScriptExecutor
使用方法:
// WebElement webElement;已通过某种方式获取到webElement
((JavascriptExecutor) driver).executeScript("arguments[0].click();", webElement);
条件:
条件1:元素在HTML DOM中存在
注:曾遇到过一次在编辑收货地址时,点击保存按钮,报StaleElementReferenceException,将点击事件换为webElement就好了,尚未弄清楚原理。