javascript - “元素无法点击”New Relic
问题描述
我在 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]
有什么建议么?这似乎是一个常见问题,但我对其他线程中提供的解决方案没有运气谢谢,Thomas
解决方案
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);
})
推荐阅读
- python - Split pandas list to different column and calculate the counts
- r - 如何在 R Shiny 的 textInput 中传递一行代码?
- javascript - TypeError:无法读取 JSONPlaceholder 未定义的属性“url”
- python - 在 PyMongo 中创建列表
- electron - Electron nsis-web,如何更改工件名称
- java - Spring Framework 中的原型 bean 范围实现
- python - Anaconda 导航器和 Python 卸载
- python-3.x - super() 的多重继承问题
- python - 如何解决 Python while 循环问题?
- flutter - 如何排除包:堆栈中的结果