我在点击搜索按钮后尝试获取页面源。这是我的代码:
WebDriver driver = new ChromeDriver();
driver.get(page);
WebElement el = driver.findElement(By.xpath(xpath)); // button
el.click();
driver.getPageSource();
并且此代码返回第一页的页面源,而不是单击...
之后加载的页面源答案 0 :(得分:4)
在获取页面源之前,您需要明确等待新页面加载。这通常取决于您正在使用的网页。例如,您可以等到特定元素变为可见:
WebDriverWait wait = new WebDriverWait(webDriver, 5);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("myid")));
driver.getPageSource();
答案 1 :(得分:1)
实际上你不应该依赖那种方法,因为不能保证它代表你当前的状态,实现还取决于你正在使用的特定驱动程序。
来自docs:
java.lang.String getPageSource()
获取上次加载的页面的来源。如果页面在加载后被修改(例如,通过Javascript)则没有 保证返回的文本是修改后的页面的文本。请 查阅正在使用的特定驱动程序的文档 确定返回的文本是否反映了当前的状态 页面或Web服务器最后发送的文本。页面源返回 是底层DOM的表示:不要指望它 格式化或转义的方式与从Web发送的响应相同 服务器。把它想象成艺术家的印象。
Returns: The source of the current page