我如何单击链接以返回上一页

时间:2019-01-28 15:05:23

标签: java selenium-webdriver webdriver phantomjs

我试图通过单击“Précédent”按钮返回上一页 但是,我没有成功,我尝试了许多代码,所有这些都使我进入了登录页面,这意味着我注销了,

在页面中,如果您执行刷新或从另一个选项卡中打开它,它将断开连接并使您返回登录表单

所以,我最近弄清楚了如何在不断开连接的情况下使用相同的phantomjs会话,但是对于一页,我没有在没有注销的情况下无法访问另一页,但是有一个后退按钮,所以,我想使用返回首页,然后输入所需的页面

很抱歉造成混乱

代码

public void photoProfile() throws IOException {
  //   String locator = cssLocator;

    String cookie = String.join("\n",Files.readAllLines(Paths.get("temp\\cookie.txt")));

    Login webpage = new Login();
    WebDriver driver = dd.driver;
    driver.navigate().to("https://www4.inscription.tn/ORegMx/ListeInscriptions.jsp?Idsession="+cookie);
    WebElement back = driver.findElement(By.xpath("//a[contains(text(),'Précédent')]"));
    //back.click();
    //Actions action = new Actions(driver);
    //action.moveToElement(driver.findElement(By.xpath("//a[contains(text(),'Précédent')]"))).click().perform();
    //action.moveToElement(back).perform();

    //Right Click
    //action.contextClick(back).perform();
    //Actions builder = new Actions(driver);
    // builder.moveToElement(back).click(back);
     //builder.perform();
     System.out.println(driver.getTitle()); //to check if the page is the correct one

我尝试过

    WebElement back = driver.findElement(By.xpath("//a[contains(text(),'Précédent')]")).click;

但是我得到

  

类型不匹配不能从void转换为webelement

此按钮的javascript是

javascript:history.back()

我需要做什么?

2 个答案:

答案 0 :(得分:0)

返回该错误是因为您试图调用.click();。设置WebElement时的方法,然后.click返回一个void。您需要将其分解为2个命令:

WebElement back = driver.findElement(By.xpath("//a[contains(text(),'Précédent')]"));
back.click();

答案 1 :(得分:0)

我猜这是因为网页的安全性所致,会话已过期,并且在登录后尝试返回时,您正在注销,尽管如果您能够手动返回,那么您应该可以执行此操作通过自动化。您正在尝试遵循以下方法返回上一页:
driver.navigate().back()