Python 如何用html文件替换web请求?

Python 如何用html文件替换web请求?,python,selenium,Python,Selenium,我想用html文件替换web请求。链接到文件html代码 我的代码 from selenium import webdriver file_path = "Mark.html" with open(file_path) as html_file: driver = webdriver.Chrome() html_content = html_file.read() print(html_content) # prints full file -- O

我想用html文件替换web请求。链接到文件html代码

我的代码

from selenium import webdriver

file_path = "Mark.html"
with open(file_path) as html_file:
    driver = webdriver.Chrome()
    html_content = html_file.read()
    print(html_content) # prints full file -- OK
    print("--------------------")
    driver.get("data:text/html;charset=utf-8,{}".format(html_content))
    print(driver.page_source) # prints only part of the file --- PROBLEM
    print("---------------------------")
    edu_raw = driver.find_elements_by_xpath("//div[@id='education']/div/div/div")
    print(edu_raw)
问题是
打印(driver.page\u source)
只打印文件的一部分

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Mark Zuckerberg</title><meta name="referrer" content="origin-when-crossorigin" id="meta_referrer"><style type="text/css" nonce="92Mfjw08">/*<![CDATA[*/.bi .bk .cd{color:</style></head><body></body></html>
马克·扎克伯格/*

如何打印整个文件?

您需要使用以下方式加载文件:

driver.get("file://" + absolutePath)
然后,您可以使用

driver.page_source
另一种方法是直接使用JS替换内容:

driver.execute_script(f"var ele=arguments[0]; ele.innerHTML = '{html_content}';", driver.find_element_by_tag_name('html'))

可能您期望的页面没有直接加载。如果是这样,请尝试使用WebDriverWait。您可以阅读此答案以了解如何使用它:。将其与选择器一起使用,以确保它将被显示。