以下代码返回的源不会反映调用click()后由javascript引起的网页更改。我错过了什么?
driver.findElement(By.xpath(xpath)).click(); // changes page content
Thread.sleep(10000);
String src = driver.getPageSource(); // src does not reflect changes
答案 0 :(得分:4)
您不应该依赖网络驱动程序getPageSource()
方法。
来自文档:
getPageSource
java.lang.String getPageSource()
获取上次加载的页面的来源。如果页面已被修改 加载后(例如,通过Javascript),无法保证 返回的文本是修改后的页面的文本。请咨询 用于确定是否的特定驱动程序的文档 返回的文本反映页面或文本的当前状态 最后由Web服务器发送。返回的页面源是 底层DOM的表示:不要指望它被格式化 或者以与从Web服务器发送的响应相同的方式进行转义。 把它想象成艺术家的印象。
返回:当前页面的来源