有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript驱动程序。getTitle()从错误页面获取数据

我试图用^{id1}获取第二页的标题和文本框的值$

WebDriver driver = new FirefoxDriver(capabilities);
driver.get("https://www.indeed.co.uk");
driver.findElement(By.id("what")).sendKeys("Selenium");
driver.findElement(By.id("where")).clear();
driver.findElement(By.id("where")).sendKeys("London");
driver.findElement(By.id("fj")).click();   //loads next page
System.out.println(driver.getTitle());    //getting ist page's title here instead of 2nd page's title
System.out.println(driver.findElement(By.id("searchCount")).getText());
driver.close();

共 (1) 个答案

  1. # 1 楼答案

    您需要等待,直到标题通过WebDriverWaittitleContains条件更改

    driver.findElement(By.id("fj")).click();
    
    WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.titleContains("Selenium"));
    
    System.out.println(driver.getTitle());
    

    请注意,您不一定需要专门等待标题中的某个单词,还有其他预期条件。例如,您还可以等待搜索结果容器(td元素和id="resultsCol")出现(presenceOfElementLocated预期条件)

    或者,您也可以等待具有id="searchCount"的元素可见:

    WebDriverWait wait = new WebDriverWait(driver, 15);
    WebElement searchCount = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("searchCount")));
    
    System.out.println(driver.getTitle()); 
    System.out.println(searchCount.getText());