常见点击失效
元素已经加载,但是 CSS 样式不会发生变化,下面的表格中统计处常见点击时的通过率;
- click - element.click();
- elementIsVisibility – driver.wait(elementIsDisplay(element, this.driver), 3000);
- elementIsDisplay – driver.actions().move({ origin: elem }).pause(100).click().perform();
value | click | elementIsVisibility | elementIsDisplay | message |
---|---|---|---|---|
display = “” | √ | √ | √ | |
display = “none” | × | × | × | ElementNotInteractableError: element not interactable |
display = “contents” | × | √ | √ | ElementNotInteractableError: element not interactable: element has zero size |
visiblity = “” | √ | √ | √ | |
visiblity = “hidden” | × | × | √ | ElementNotInteractableError: element not interactable |
visiblity = “collapse” | × | × | √ | ElementNotInteractableError: element not interactable |
opacity= “0” | √ | × | √ | TimeoutError: Waiting until element is visible |
常见报错信息
StaleElementReferenceError: stale element reference: element is not attached to the page document
问题分析:
- 获取元素 A 正常
- 删除元素 A
- 添加元素与A元素属性相同(A)
- 操作元素 A,就会报错,A 元素 sourceID 已经改变
ElementNotInteractableError: element not interactable: [object HTMLDivElement] has no size and location
问题分析:
- 获取元素 A 成功;
- 使用 Actions 中的 click、contextClick、doubleClick、hover 操作元素就会报错
- 问题是 css 样式中的 display: “none”, 因为元素大小和位置等于 0