“元素在该点不可点击”New Relic

"Element is not clickable at point” New Relic

我在使用 New relic 中的 Selenium JS 时遇到了一些问题。我正在尝试单击一个元素,但我一直在找回错误 "Element is not clickable at point"。 Selenium Web Driver & Java. Element is not clickable at point (x, y). Other element would receive the click 上的解决方案并不真正适用于 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);
})