如何处理 <div id="preloader"> 用硒掩盖其他元素,检查其他答案没有任何帮助
how to handle <div id="preloader"> obscuring other elements with selenium, checked other answers nothing helped
我正在尝试使用 selenium java 自动化 Web 应用程序,这是我不断收到的消息 org.openqa.selenium.ElementClickInterceptedException:元素在点 (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 = preloader
我会先检查预加载器是否显示,然后等待其隐身。这可能会使执行速度变慢,但它是安全的。
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")));
}
我正在尝试使用 selenium java 自动化 Web 应用程序,这是我不断收到的消息 org.openqa.selenium.ElementClickInterceptedException:元素在点 (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 = preloader
我会先检查预加载器是否显示,然后等待其隐身。这可能会使执行速度变慢,但它是安全的。
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")));
}