org.openqa.selenium.ElementClickInterceptedException:元素点击被拦截:元素<a href="/url"> ... </a>在点(376,846)不可点击

时间:2020-09-10 12:45:21

标签: java selenium selenium-webdriver

我有一个自动脚本,试图转到页面,单击链接,然后确保显示登录/注册门,因为我是匿名用户。

由于无法找到我的链接,因此我无法进行登机验证。我收到以下错误:org.openqa.selenium.ElementClickInterceptedException:元素单击被拦截:元素...在点(376,846)不可单击。其他元素将获得点击:

我试图通过cssSelector和xpath的不同版本(绝对,相对等)来定位此链接。

我发现了以下线程:

ElementClickInterceptedException: Message: element click intercepted: Element <label> is not clickable with Selenium and Python

并且已尝试按照https://www.selenium.dev/documentation/en/webdriver/waits/#explicit-wait执行等待 我不得不删除了Duration.ofSeconds,因为Java 3中似乎已弃用了它。我还尝试了在获得URL之后和找到元素之后直接进行等待。

我也尝试了隐式等待。我仍然遇到相同的错误。我是Java的新手,所以可以提供一些帮助!

这是我的代码:

package packagename;

import org.junit.Test;
import org.junit.Before;
import org.hamcrest.MatcherAssert;
import org.junit.After;
import static org.hamcrest.CoreMatchers.is;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.JavascriptExecutor;
import java.util.*;
import java.net.MalformedURLException;
import java.net.URL;
public class classname {
  private WebDriver driver;
  JavascriptExecutor js;

  @Before
  public void setUp() throws MalformedURLException {
    driver = new RemoteWebDriver(new URL("webdriverurl"), DesiredCapabilities.chrome());
    js = (JavascriptExecutor) driver;
    new HashMap<String, Object>();
  }
  @After
  public void tearDown() {
    driver.quit();
  }
  @Test
  public void name() {
    driver.get("url");
    new WebDriverWait(driver, (30))
        .until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(text(),'Abe Ikubo & Katayama')]")));
    driver.findElement(By.xpath("//a[contains(text(),'Abe Ikubo & Katayama')]")).click();
    MatcherAssert.assertThat(driver.findElement(By.xpath("//xpath")).getText(), is("text"));
  }
}

0 个答案:

没有答案