Javascript 在SeleniumWebDriver中呈现一系列响应
我想在浏览网站时收集一系列响应,然后使用响应“重新创建”过程 从一个实例中,我找到了呈现HTML的解决方案:Javascript 在SeleniumWebDriver中呈现一系列响应,javascript,python,selenium,selenium-webdriver,Javascript,Python,Selenium,Selenium Webdriver,我想在浏览网站时收集一系列响应,然后使用响应“重新创建”过程 从一个实例中,我找到了呈现HTML的解决方案: content = requests.get("https://stackoverflow.com/").content driver = webdriver.Chrome() driver.get("data:text/html;charset=utf-8," + content) 不幸的是,当我尝试这一点(使用Firefox而不是Chrome)时,内容只是放在浏览器地址栏中 如何
content = requests.get("https://stackoverflow.com/").content
driver = webdriver.Chrome()
driver.get("data:text/html;charset=utf-8," + content)
不幸的是,当我尝试这一点(使用Firefox而不是Chrome)时,内容只是放在浏览器地址栏中
如何呈现一系列响应,包括使用selenium webdriver的XHR响应?您必须考虑某些特定于浏览器的事情,例如,据我所知,您只需通过
quote()
传递内容即可:
如果您使用Chrome,则无需这样做。我找到了一个可能的解决方案,或者更确切地说是解决方法。在字典中保存请求(URL)和响应时,您可以设置一个服务器,用其响应预录制的响应来响应每个请求。谢谢!但我也可以这样处理所有其他请求吗?就像浏览器将发送请求,并将接收虚拟响应一样-无需发送请求。我想提供响应,并查看浏览器的行为。@Peter1807不确定,请详细说明您想要实现什么,以及为什么您需要一个真正的浏览器,而不是只使用
请求?谢谢。我想测试客户端框架。在这些情况下,服务器响应包含仅在浏览器中呈现的模板。我想看看更改这些模板如何影响生成的页面。@Peter1807好的,但是您可以使用driver.get()
直接访问模板,而无需中间请求。get()
?我会从其他来源收集响应。所以我不需要使用requests.get()
try:
from urllib import quote
except ImportError:
from urllib.parse import quote # if Python 3
driver.get("data:text/html;charset=utf-8," + quote(content))