gpt4 book ai didi

javascript - driver.getTitle() 从错误的页面获取数据

转载 作者:行者123 更新时间:2023-11-29 21:09:27 26 4
gpt4 key购买 nike

我正在尝试从第二页获取第二页的标题和带有 id="searchCount"的文本框的值。根据下面的代码,我获得了第一页的标题,并为具有 id searchCount 的元素获取“org.openqa.selenium.NoSuchElementException”....这意味着代码正在从第一页获取数据......在加载之前第 2 页。如何解决这个问题??我显然是在单击带有 id="fj"的搜索按钮并加载第二页...但是检索到的数据来自错误的页面。

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();

最佳答案

您需要通过 WebDriverWaittitleContains 条件等到标题更改:

driver.findElement(By.id("fj")).click();

WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.titleContains("Selenium"));

System.out.println(driver.getTitle());

请注意,您不一定需要专门等待标题中的单词,还有其他预期条件。例如,您还可以等待搜索结果容器(具有 id="resultsCol"td 元素)出现(预期为 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());

关于javascript - driver.getTitle() 从错误的页面获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42424476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com