Selenium Java如何将驱动程序返回到上一页
我在pageA中有两个链接。当我单击第一个链接时,它会重定向到另一个名为pageB的页面,并执行某些工作,然后返回pageA。从这里,它应该再次点击第二个链接,但它说页面已重新加载,没有可用的缓存Selenium Java如何将驱动程序返回到上一页,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我在pageA中有两个链接。当我单击第一个链接时,它会重定向到另一个名为pageB的页面,并执行某些工作,然后返回pageA。从这里,它应该再次点击第二个链接,但它说页面已重新加载,没有可用的缓存 //List of all tickets for(WebElement ticket: ticketList){ List<WebElement> ticketCells = ticket.findElements(By.tagName('td')); if(ticketCells.
//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();
}
}
//所有票据的列表
对于(WebElement票证:票证列表){
List ticketCells=ticket.findElements(按.tagName('td'));
if(ticketCells.get(4.getText().equalIgnoreCase(“某些文本”)){
ticketCells.get(2).单击();//重定向到pageB
.....
做些工作
.......
//最后单击“保存并返回”按钮,该按钮应返回到上一步
//翻页并从所有票证列表中选择第二张票证(第一张用于循环)
driver.findElement(By.id(“保存并返回”)。单击();
}
}
此处虽然返回到上一页pageA,但无法从for循环中选择第二个元素进行下一步操作
任何关于如何使其工作的想法。@try-catch最终解释得非常清楚。下面的代码正是处理错误所需的代码。
@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();
}
}
对于(int i=0;i我认为您想要的是按浏览器的后退按钮,对吗
如果是这样,请尝试:
webDriver.navigate().back();
是否需要导航到同一浏览器选项卡中的上一页?@santhoshkumar是的,所有这些都应该发生在单个浏览器选项卡上。driver.navigate().back();将带您进入上一页不要像Guy说的那样添加网站链接。它会随着时间的推移而改变或消失,使此问题对其他人毫无用处。描述页面和流程,可能添加屏幕截图或涂鸦。请注意,与ticket
的第二次交互可能会(您没有提到错误消息)失败,出现StaleElementReferenceException
,因为您因导航而更改了页面内容。返回时(目前不清楚此异常或导航是否是您的问题)无法与该列表中的元素交互。您必须在导航后再次选择它们,并使用计数器变量而不是迭代器(确定有N行,从0..N-1开始计数,然后执行ticketList.get(index)
)。请添加您得到的异常。