2017-08-30 94 views
0

我的页面包含预先搜索链接,其中填充搜索条件后,会出现一个加载器,它会根据搜索条件加载我的结果,然后我需要执行删除操作。如何在执行下一步操作之前等待加载页面?

我的脚本运行速度很快,它不会等待加载程序消失并单击删除,因为它们没有符合我的搜索条件的记录,所以不应该发生删除。

代码,我used-

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

任何人谁可以帮我等待这样的过程。

如果有任何澄清,请通知我。

+1

复制https://stackoverflow.com/questions/36590274/selenium-how-to-wait-until-page-是完全加载 –

+0

@RajuSharma我应该把它作为重复,因为该问题没有标记为正确的答案。 –

回答

0

使用显式的等待,请把它作为样品例如:

WebDriverWait wait = new WebDriverWait(driver, 20); 
By element1 = By.xpath("path of element"); 

// get the button1 element 
WebElement button1= wait.until(ExpectedConditions.presenceOfElementLocated(element1)); 
+0

我应该等待哪个元素。下一个操作即,。删除我想要执行的或当我点击预先搜索时。 –

+0

你的操作卡在哪里你可以使用它, – iamsankalp89

+0

我已经使用之前点击删除,它不工作:( –

0

使用,这是因为样本首先我要等About链接可以点击,所以我必须使用显式的等待,然后等待Our products链接可点击。

WebDriver driver = new FirefoxDriver(); 
driver.manage().window().maximize(); 
driver.get("http://www.google.com"); 
WebDriverWait wait =new WebDriverWait(driver, 20); 
WebElement aboutLink= wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.linkText("About")))); 

aboutLink.click(); 

WebElement producttLink= wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//a[text()='Our products']")))); 
producttLink.click(); 
+0

你能解释我吗,你为什么要对同一个问题提出多个答案..这很刺激。请仅用不同的解决方案发布答案​​。 –

+0

他想要一个相同的示例代码 – iamsankalp89

+0

然后您可以将您的答案与正确的文本合并。不像另一个答案。 –

0

如果你知道装载机的元素(每例如,classname="spinner“),你也可以等待该元素的隐形

试试下面的代码:

WebDriverWait wait = new WebDriverWait(driver, 20); 
By loadElement = By.className("spinner"); 

//wait until loader is gone 
WebDriverWait.until(ExpectedConditions.invisibilityOfElementLocated(loadElement)); 
1

由于在填写搜索条件时会出现一个加载器,它会根据搜索条件加载结果,然后您需要执行删除操作,因此我们有两种方法来解决此问题。

  • 在第一种方法,我们将等待加载器disappear和下一步点击预期WebElementDelete。我们将实现通过WebDriverWaitExpectedConditions一套这种方法invisibilityOfElementLocated如下:

    WebDriverWait wait10 = new WebDriverWait(driver, 10); 
    wait10.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_loader"))); 
    driver.findElement(By.xpath("xpath_delete_button")).click(); 
    
  • 在第二种方法中,我们将等待WebElement的删除按钮可以点击旁边点击预期WebElementDelete 。我们将通过实现与WebDriverWait一套ExpectedConditions这种方法elementToBeClickable如下:

    WebDriverWait wait11 = new WebDriverWait(driver, 10); 
    WebElement element11 = wait11.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_delete_button"))); 
    element11.click(); 
    
相关问题