Java 如何处理<;div id=";预压器&燃气轮机;用硒掩盖其他元素,检查其他答案没有任何帮助

Java 如何处理<;div id=";预压器&燃气轮机;用硒掩盖其他元素,检查其他答案没有任何帮助,java,selenium,testng,Java,Selenium,Testng,我正试图用selenium java自动化一个web应用程序,这是我一直收到的一条消息org.openqa.selenium.Element ClickInterception:Element在点(85,37)处不可单击,因为其他元素在所有浏览器中都会遮挡它 我尝试了所有的等待,显式等待20秒似乎有效,但通常也失败了。而且,这几乎发生在应用程序中的每个元素之前,我认为在每个元素之前应用显式等待或Thread.sleep是一个很好的实践 driver.findElement(By.xpat

我正试图用selenium java自动化一个web应用程序,这是我一直收到的一条消息org.openqa.selenium.Element ClickInterception:Element在点(85,37)处不可单击,因为其他元素在所有浏览器中都会遮挡它

我尝试了所有的等待,显式等待20秒似乎有效,但通常也失败了。而且,这几乎发生在应用程序中的每个元素之前,我认为在每个元素之前应用显式等待或Thread.sleep是一个很好的实践

    driver.findElement(By.xpath("//span[contains(text(),'Agent Corrections')]")).click();

    WebDriverWait wait1 = new WebDriverWait(driver, 20);
    wait1.until(ExpectedConditions.invisibilityOfElementLocated(By.id("preloader")));

    String expectedText = "";
    String actualText = driver.findElement(By.cssSelector("#users_management > div.panel-heading > h4")).getText();
    Assert.assertEquals(expectedText, actualText);

    driver.findElement(By.xpath("//span[contains(text(),'')]")).click();

    driver.findElement(By.xpath("//span[contains(text(),'')]")).click();

    wait1.until(ExpectedConditions.invisibilityOfElementLocated(By.id("preloader")));
    driver.findElement(By.id("pcc")).sendKeys("");
    driver.findElement(By.id("pnr")).sendKeys("");
    driver.findElement(By.id("FFFormSubmit")).click();

    wait1.until(ExpectedConditions.invisibilityOfElementLocated(By.id("preloader")));

元素模糊是使用div id=preload进行的,我会首先检查预加载程序是否显示,然后等待其不可见。这可能会使执行速度变慢,但它是故障安全的

driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS) // this will make wait time of 5 seconds for each element including preloader.

WebDriverWait wait1 = new WebDriverWait(driver, 20);
 if(driver.findElement(By.id("preloader")).isDisplayed())
{    wait1.until(ExpectedConditions.invisibilityOfElementLocated(By.id("preloader")));
}

我们可以获取页面URL吗?在使用之前,您还可以检查单个元素是否可见/可单击/可交互。这将代替检查是否存在重叠。幸运的是,我不能给你页面URL,因为它是在组织之下。然而,当我在显式等待中使用其他任何东西而不是“元素的不可见性”时,它会失败。这也可能是web应用程序不稳定的问题。对每个元素等待20秒以上听起来是一个严重的问题。你正在上传大文件吗?不,没有文件。另外,我和一个开发人员谈过,他忽略了这个问题,说这个问题是因为他的代码是后端,而我的脚本是前端。搜索了很多,但找不到解决方案。我以前尝试过这种技术,但它不是故障安全的。随着时间的推移,你可能永远不会发现它显示,然后这将打破。是的。这取决于应用程序,等待时间可能需要调整。这比我的方法更快,但问题是,当页面加载时,异常出现在每个元素之前。而且Thread.sleep不是在每个元素之前应用的好方法,因为如果我有一个更大的测试脚本,那么它需要很长时间才能完成。你不应该将隐式等待与显式等待混合使用。