【发布时间】:2020-05-21 21:01:17
【问题描述】:
这是我的代码:
Go To Confirm
[Arguments] ${tr}
${btns} Call Method
... ${tr}
... find_elements_by_tag_name
... button
FOR ${btn} IN @{btns}
${btnText} get text ${btn}
run keyword if '${btnText}'=='confirm' click element ${btn}
exit for loop if '${btnText}'=='confirm'
END
有两个元素重叠。当我“单击元素”时。收到此错误:
ElementClickInterceptedException: Message: element click intercepted:
Element <button class="btn btn-success btn-sm" ng-show="selectedClassify.label ===
'waitConfirm' && (!buttonConfig || buttonConfig &&
buttonConfig.confirmScheme == 1)" ng-click="confirmBtn(row)">...</button>
is not clickable at point (768, 581).
Other element would receive the click:
<footer class="infi-footer display-none ng-scope display-block" ng-if="!notFooter &&
!hideLayout" ng-class=" {true: 'display-block'}[!notFooter && !hideLayout]">...
</footer>
(Session info: headless chrome=80.0.3987.163) Stacktrace: #0 0x55817bb9b7a9 <unknown>
我想这样修复它:
WebElement ele = driver.findElement(By.xpath("element_xpath"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);
或者这个:
WebElement myelement = driver.findElement(By.id("navigationPageButton"));
JavascriptExecutor jse2 = (JavascriptExecutor)driver;
jse2.executeScript("arguments[0].scrollIntoView()", myelement);
我在文档中找到了关键字“执行 Javascript”。但它没有关于webElement的参数。
如何使用我的 webElement 执行 javascript?
【问题讨论】: