![](/img/trans.png)
[英]Save complete web page (incl css, images) using python/selenium
[英]Save a Web Page with Python Selenium
我正在使用selenium webdriver for Python 2.7:
啟動瀏覽器: browser = webdriver.Firefox()
。
轉到某個網址: browser.get('http://www.google.com')
。
此時,如何向瀏覽器發送“另存頁面”命令?
注意:這不是我感興趣的網頁源。我想使用實際的'Save Page As'Firefox命令保存頁面,這會產生與保存網頁源不同的結果。
不幸的是,你無法做你想做的Selenium。 您可以使用page_source來獲取html,但這就是您將獲得的所有內容。
不幸的是,當您保存時,Selenium無法與提供給您的Dialog交互。
你可以執行以下操作來獲得對話框,但是你需要像AutoIT這樣的東西來完成它
from selenium.webdriver.common.action_chains import ActionChains
saveas = ActionChains(driver).key_down(Keys.CONTROL)\
.send_keys('s').key_up(Keys.CONTROL)
saveas.perform()
我有一個類似的問題並且最近解決了它:
@AutomatedTester給出了一個不錯的答案,但他的答案並沒有解決問題,你還需要再次按Enter鍵才能完成這項工作。
因此,我們需要Python為我們再按一次Enter。
在以下主題中關注@NoctisSkytower的回答:
復制他對類的定義,然后將以下內容添加到@AutomatedTester的答案中:
SendInput(Keyboard(VK_RETURN))
time.sleep(0.2)
SendInput(Keyboard(VK_RETURN, KEYEVENTF_KEYUP))
您可能還想查看以下鏈接:
selenium web驅動程序如何知道新窗口何時打開然后恢復執行
您可能會遇到彈出窗口,此線程會告訴您要執行此操作。
如果您使用的是Linux,則可以使用xte
。 安裝
sudo apt-get install xautomation
第一。
from subprocess import Popen, PIPE
save_sequence = """keydown Control_L
key S
keyup Control_L
"""
def keypress(sequence):
p = Popen(['xte'], stdin=PIPE)
p.communicate(input=sequence)
keypress(save_sequence)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.