我正在使用硒编写应用程序。我知道您可以使用webdriver.Firefox
的{{1}}方法来获取网页,如下所示:
get
但是,我不想打开网页并从那里获取资源,而是想自己提供这样的资源:
driver = webdriver.Firefox(executable_path=r'geckodriver')
driver.get('file://' + os.path.dirname(os.path.abspath(__file__)) + '/index.html')
driver.page_source # get the source
然后能够执行常规的硒操作,例如:
driver.page_source = '<body><h1>Hello</h1></body>'
但是由于 driver.find_element_by_tag_name('<h1>')
是Firefox.page_source
,所以我不能手动设置它。有谁知道解决这个问题的方法?任何建议将不胜感激。
答案 0 :(得分:4)
您可以使用数据网址打开该网址,并以data:
方案开头
htmlString = '<body><h1>Hello</h1></body>'
driver.get("data:text/html;charset=utf-8," + htmlString);
h1 = driver.find_element_by_tag_name('h1')
print(h1.text)
长度限制:65535个字符
或者没有长度限制,您可以使用javascript方法execute_script()
htmlString = '<html><body></body></html>'
driver.get("data:text/html;charset=utf-8," + htmlString);
largeHTMLString = '<h1>Hello</h1>'
driver.execute_script('document.body.innerHTML=arguments[0]', largeHTMLString)
h1 = driver.find_element_by_tag_name('h1')
print(h1.text)
答案 1 :(得分:0)
如果您不介意解析漂亮的汤,这就是我要解决的问题:
isAuthenticated
希望有帮助。