我在 New relic 中遇到了我的 Selenium JS 问题。我正在尝试单击一个元素,但我一直在返回错误“元素此时不可点击”。Selenium Web Driver 和 Java的解决方案。元素在 (x, y) 点不可点击。其他会收到点击的元素并不真正适用于 NewRelic。我正在使用的片段是
.then(function() {
log(26, 'clickElement "//form[@id=\'giftcard-form\']/div[3]/div/button"');
return $browser.waitForAndFindElement(By.xpath("//form[@id=\'giftcard-form\']/div[3]/div/button"), DefaultTimeout); })
.then(function (el) { el.click(); })
我没有发现代码有任何问题,并且该元素在页面上可见。
![在此处输入图像描述][1]
有什么建议么?这似乎是一个常见问题,但我对另一个线程中提供的解决方案没有运气,谢谢,托马斯
waitForAndFindElement 将仅等待元素存在。它不会等待元素可见性。
尝试等待元素的可见性,
.then(function() {
log(26, 'clickElement "//form[@id=\'giftcard-form\']/div[3]/div/button"');
return $browser.wait($driver.until.elementIsVisible($browser.findElement(By.xpath("//form[@id=\'giftcard-form\']/div[3]/div/button"))));
}).then(function (el) {
el.click();
})
如果您收到超时错误,请滚动查看并单击。
.then(function() {
log(26, 'clickElement "//form[@id=\'giftcard-form\']/div[3]/div/button"');
return $browser.waitForAndFindElement(By.xpath("//form[@id=\'giftcard-form\']/div[3]/div/button"), DefaultTimeout); })
.then(function (el) {
$browser.executeScript("arguments[0].scrollIntoView()", el);
el.click();
})
如果滚动没有帮助,那么最后使用javascript点击,
.then(function() {
log(26, 'clickElement "//form[@id=\'giftcard-form\']/div[3]/div/button"');
return $browser.waitForAndFindElement(By.xpath("//form[@id=\'giftcard-form\']/div[3]/div/button"), DefaultTimeout); })
.then(function (el) {
$browser.executeScript("arguments[0].click()", el);
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句