代码之家  ›  专栏  ›  技术社区  ›  Rhys

点击“输出”按钮:“添加url”

  •  0
  • Rhys  · 技术社区  · 7 年前

    我正在尝试获取网页的呈现html。这个 ctrl+u 相当于(在firefox或chrome中)。 现在我必须 .click() 加载页面,获取url 然后再次加载 添加 view-source: 到url

    search = browser.find_elements_by_xpath('//*[@id="edit-keys"]')
    button = browser.find_elements_by_xpath('//*[@id="edit-submit"]')
    browser.execute_script("arguments[0].value = 'bla';", search[0])
    browser.execute_script('arguments[0].target="_blank";', button[0].find_element_by_xpath('./ancestor::form'))
    browser.execute_script('arguments[0].click();', button[0])
    url = browser.current_url
    browser.get("view-source:" + url)
    

    是否可以在不加载两次url的情况下执行此操作?

    browser.execute_script('return document.documentElement.outerHTML') 不提供 查看来源: 相等的

    driver.page_source 也不匹配 查看来源:

    也许有一种方法可以添加 查看来源: browser.execute_script('arguments[0].click();', button[0]) ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dalvenjia    7 年前

    要使用动态JS加载的元素获取呈现的HTML,以及使用简单的一行代码的JS获取所需的全部内容:

    rendered_source = driver.execute_script('return document.documentElement.outerHTML;')