2014-07-15 50 views
0

在我的Selenium测试中,我需要在加载所有Ajax对象后简单地保存网页内容。我已经找到答案如何等待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 

我假设我需要告诉网络驱动程序检查浏览器和更新page_source属性。有没有API?如何保存包含Ajax对象的页面?

编辑:谢谢你的回复!在用样本Ajax网站重新测试之后,我发现上面的代码有效。问题在于该网站使用框架,因此我需要切换到适当的框架。这是另一个回帖后回答:What does #document mean?

回答

0

page_source应该像现在一样返回页面的HTML,并包括任何由AJAX生成的HTML页面加载页面。您不应该调用不同的方法来获取AJAX生成的内容。

有没有公共的链接到我们可以看到的网站?

0

打开后,页面刷新页面,然后得到源代码

driver.refresh()

文本= driver.page_source