在我的Selenium测试中,我只需在加载所有Ajax对象后保存网页内容。我已经找到了如何等待Ajax加载的答案,但是没有可行的解决方案来保存整个页面的Ajax内容。这是源代码示例:
with contextlib.closing(webdriver.Chrome()) as driver:
driver.get(url) # Load page
# Just as an example, wait manually until all Ajax objects are loaded.
raw_input("Done?")
# Save whole page
text = driver.page_source
# text contains original page data, no Ajax elements
我假设我需要告诉Web驱动程序检查浏览器并更新page_source属性。那有API吗?如何保存包含Ajax对象的页面?
编辑:感谢您的回复!在使用示例Ajax站点重新测试之后,我发现上面的代码有效。问题是该网站使用框架,因此我需要切换到合适的框架。这是另一篇回答:What does #document mean?
的帖子答案 0 :(得分:0)
page_source应该像现在一样返回页面的HTML,并包含由AJAX加载的任何HTML页面。您不必调用不同的方法来获取AJAX生成的内容。
是否有我们可以看到的网站的公共链接?
答案 1 :(得分:0)
打开页面后,刷新页面,然后获取源代码
driver.refresh()
text = driver.page_source