【问题标题】:Selenium. Get content for dynamic page including Ajax objects硒。获取动态页面的内容,包括 Ajax 对象
【发布时间】:2016-10-12 04:51:23
【问题描述】:

在我的 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

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

编辑:感谢您的回复!在使用示例 Ajax 站点重新测试后,我发现上面的代码有效。问题是该站点使用框架,因此我需要切换到正确的框架。这是另一篇回答这个问题的帖子:What does #document mean?

【问题讨论】:

    标签: python ajax selenium webdriver


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      打开页面后刷新页面然后获取源码

      driver.refresh()

      text = driver.page_source

      【讨论】:

        猜你喜欢
        • 2011-07-11
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多