如果元素不存在,如何重新加载页面';t出现在SeleniumWebDriverJava中
有时由于超时或其他原因,页面停止加载或被加载,但注册页面没有出现,为了确保我们必须刷新页面,我尝试了driver.navigate.refresh(),我尝试了显式等待和javascript executor,没有任何效果,我正在添加我尝试的代码片段,但它也不起作用。 一旦findelement().isdisplayed为false,我的脚本就会失败,它不会进入if循环。 下面是代码-如果元素不存在,如何重新加载页面';t出现在SeleniumWebDriverJava中,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,有时由于超时或其他原因,页面停止加载或被加载,但注册页面没有出现,为了确保我们必须刷新页面,我尝试了driver.navigate.refresh(),我尝试了显式等待和javascript executor,没有任何效果,我正在添加我尝试的代码片段,但它也不起作用。 一旦findelement().isdisplayed为false,我的脚本就会失败,它不会进入if循环。 下面是代码- for(int i=0;i<3;i++) { System.out.pr
for(int i=0;i<3;i++)
{
System.out.println("In for loop");
try
{
if(driver.findElement(byusername).isDisplayed())
{
System.out.println("Element found");
driver.findElement(byusername).sendKeys(username);
driver.findElement(bypassword).sendKeys(password);
driver.findElement(signIn).click();
System.out.println("Logged in");
basewait.until( ExpectedConditions.presenceOfElementLocated(Tab));
System.out.println("Wait completed, going to base class");
i=3;
}
else
{
System.out.println("Element not found"+i+" try");
driver.navigate().refresh();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
i++;
}
}
catch(NoSuchElementException e)
{
System.out.println(e);
}
for(int i=0;i尝试替换:
if(driver.findElement(byusername).isDisplayed())
与:
这不会引发异常,您可以转到else
语句。driver.findElements(按用户名)
返回找到的元素列表,如果没有找到任何元素,则返回一个空列表。首先,请注意,隐式等待只需要在web驱动程序实例化后设置一次,除非出于任何原因,您希望稍后更改该设置的超时值
其次,尝试使用下面的代码等待页面完成加载
/**
* Wait for the web page to finish loading
*/
public void waitForPageToLoad() {
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver wdriver) {
return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
}
});
}
/**
*等待网页完成加载
*/
public void waitForPageToLoad(){
WebDriverWait wait=新的WebDriverWait(驱动程序,10);
等待.直到(新的ExpectedCondition(){
公共布尔应用(WebDriver wdriver){
return((JavascriptExecutor)driver.executeScript(“return document.readyState”).equals(“complete”);
}
});
}
当元素未显示时,您会遇到什么错误?这有助于我的基类在数组为空时重新加载页面,谢谢。
/**
* Wait for the web page to finish loading
*/
public void waitForPageToLoad() {
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver wdriver) {
return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
}
});
}