我很难尝试单击在 DOM 中呈现的元素,但由于某些奇怪的原因,它仍然给我一个错误:
WebDriverError: element click intercepted: Element is not clickable at point (281, 687)
元素/字段外观的图片:
如您所见,这是运行 Mocha/Chai/Protractor 时 HTML 中显示的内容。我正在使用代码(我想单击复选框):
it('click busniess customer', function (done) {
browser.driver
//.then(() => browser.executeScript("arguments[0].click();", piPage.getBusinessCustomerCB().getWebElement()))
.then(() => browser.wait(EC.presenceOf(element(by.id('isBusinessCustomer'))), 10000, "Timed out Email"))
.then(() => element(by.id('isBusinessCustomer')).click())
.then(() => done());
});
但是它仍然说该元素不可点击。但奇怪的是,如果我在点击发生之前手动向下滚动页面,那么它的点击没有任何问题,但如果复选框的长度与图片相同,那么它会抛出一个错误,指出该元素是不可点击。
我的问题是如何才能单击该元素而不出现有关该元素不可单击的错误?
编辑:
最佳答案
我发现您正在等待该元素出现,然后再尝试单击它。有时这可能会导致一些问题,因为 presenceOf
并不一定意味着该元素是可见的。
尝试像这样链接这些函数:
等待存在 -> 等待可见性 -> 向下滚动到该元素 -> 单击它
it('click busniess customer', function (done) {
const element = element(by.id('isBusinessCustomer'));
browser.driver
.then(() => browser.wait(EC.presenceOf(element), 10000, "Timed out Email"))
.then(() => browser.wait(EC.visibilityOf(element), 10000, "Timed out Email"))
.then(() => browser.executeScript('arguments[0].scrollIntoView(true)', element.getWebElement())
.then(() => element.click())
.then(() => done()));
});
关于javascript - 如何使用 Mocha/Chai/Protractor 单击复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769214/