繁体   English   中英

Selenium Java如何让驱动返回上一页

[英]Selenium Java how to return the driver back to the previous page

我在 pageA 中有两个链接。 当我单击第一个链接时,它会重定向到另一个名为 pageB 的页面并执行某些特定工作并返回到 pageA。 从这里它应该再次单击到第二个链接,但它说页面已重新加载并且没有可用的缓存。

//List of all tickets
for(WebElement ticket: ticketList){
List<WebElement> ticketCells = ticket.findElements(By.tagName('td'));
  if(ticketCells.get(4).getText().equalIgnoreCase("Some Text")){
   ticketCells.get(2).click(); //Redirects to pageB
   .....
   do some job
   .......
   //Finally clicking on the 'SAVE & BACK' button which should return  to previous 
   //page and pick the 2nd ticket from the list of all tickets (1st for loop) 
   driver.findElement(By.id("save&back")).click();
  }
}

这里虽然它返回到上一页 pageA 但无法从 for 循环中选择第二个元素进行下一个操作。

关于如何让它发挥作用的任何想法。

我认为您想要的相当于按浏览器的后退按钮,对吗?

如果是这样,请尝试:

webDriver.navigate().back();

如果你想在 java selenium 浏览器中导航到后一页或上一页。 你可以试试

webDriver.navigate().back();

如果你想在 python selenium 浏览器中导航到后一页或上一页。 你可以试试

driver.back();

如果你想在 JavaScript selenium 浏览器中导航到后一页或上一页。 你可以试试

driver.execute_script("window.history.go(-1)");
@try-catch-finally explained it very clearly. The below code is exactly what you need to handle the error.

for(int i = 0; i <2 ;i++){
ticketList = driver.findElements(selector);
ticket = ticketList.get(i);
List<WebElement> ticketCells = ticket.findElements(By.tagName('td'));
  if(ticketCells.get(4).getText().equalIgnoreCase("Some Text")){
   ticketCells.get(2).click(); //Redirects to pageB
   .....
   do some job
   .......
   //Finally clicking on the 'SAVE & BACK' button which should return  to previous 
   //page and pick the 2nd ticket from the list of all tickets (1st for loop) 
   driver.findElement(By.id("save&back")).click();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM