在使用Python的Windows上使用Selenium Webdriver截圖時,屏幕截圖直接保存到程序的路徑中,是否有將.png文件保存到特定目錄的方法?Webdriver屏幕截圖
回答
使用driver.save_screenshot('/path/to/file')
或driver.get_screenshot_as_file('/path/to/file')
:
import selenium.webdriver as webdriver
import contextlib
@contextlib.contextmanager
def quitting(thing):
yield thing
thing.quit()
with quitting(webdriver.Firefox()) as driver:
driver.implicitly_wait(10)
driver.get('http://www.google.com')
driver.get_screenshot_as_file('/tmp/google.png')
# driver.save_screenshot('/tmp/google.png')
我明白你正在尋找一個Python的答案,但這裏是一個如何做到這一點的紅寶石..
http://watirwebdriver.com/screenshots/
如果只能保存在當前目錄中。我首先將圖像分配給一個變量,然後將該變量作爲PNG文件保存到磁盤。
例如:
image = b.screenshot.png
File.open("testfile.png", "w") do |file|
file.puts "#{image}"
end
其中b是通過webdriver的使用的瀏覽器變量。我可以靈活地在「File.open」中提供絕對或相對路徑,以便將圖像保存到任何地方。
是的,我們有一個辦法讓使用python的webdriver下面的代碼
的使用,如果你在Python webriver.it工作是非常簡單的png格式的截圖擴展。
driver.save_screenshot('D\folder\filename.png')
從這個線程(用於Java同樣的問題)的啓發:Take a screenshot with Selenium WebDriver
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()
當然它現在是不實際的,但我也面臨這個問題,我的方式: 看起來像「save_screenshot」在創建具有空間名稱的文件時遇到一些麻煩,因爲我在隨機化過程中添加了用於轉義覆蓋的文件名。
這裏我的方法來清洗我的空格的文件名(How do I replace whitespaces with underscore and vice versa?):
def urlify(self, s):
# Remove all non-word characters (everything except numbers and letters)
s = re.sub(r"[^\w\s]", '', s)
# Replace all runs of whitespace with a single dash
s = re.sub(r"\s+", '-', s)
return s
然後
driver.save_screenshot('c:\\pytest_screenshots\\%s' % screen_name)
其中
def datetime_now(prefix):
symbols = str(datetime.datetime.now())
return prefix + "-" + "".join(symbols)
screen_name = self.urlify(datetime_now('screen')) + '.png'
driver.save_screenshot("path to save \\screen.jpeg")
您可以使用以下功能相對的如下路徑作爲絕對路徑是不是一個好主意,在腳本中添加
進口
import sys, os
使用代碼:
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
screenshotpath = os.path.join(os.path.sep, ROOT_DIR,'Screenshots'+ os.sep)
driver.get_screenshot_as_file(screenshotpath+"testPngFunction.png")
確保您所創建的文件夾中的.py文件存在。
os.path.join
也阻止您在跨平臺上運行腳本,例如:UNIX和Windows。它將在運行時根據OS生成路徑分隔符。 os.sep
類似於File.separtor
in java
- 1. Webdriver的屏幕截圖
- 2. Selenium Webdriver Black屏幕截圖PhantomJS
- 3. 屏幕截圖與IE8上的硒webdriver
- 4. SpriteKit屏幕截圖的屏幕截圖
- 5. 屏幕截圖
- 6. C++截取屏幕截圖
- 7. 截取屏幕截圖
- 8. watir-webdriver黑屏截圖
- 9. 在C中使用selenium webdriver截取屏幕截圖時的空白截圖#
- 10. UIWebView屏幕截圖
- 11. iPhone屏幕截圖
- 12. Roku屏幕截圖
- 13. C++屏幕截圖
- 14. ASP.NET屏幕截圖
- 15. iPhone:屏幕截圖
- 16. android屏幕截圖
- 17. UICollectionView屏幕截圖
- 18. 屏幕截圖未連接屏幕截圖的軟件(RDP)
- 19. 屏幕截圖按住屏幕截圖時卡住
- 20. 以當前屏幕的屏幕截圖
- 21. 以整個屏幕的屏幕截圖
- 22. 屏幕部分的屏幕截圖
- 23. 屏幕截圖到任何屏幕(Android Root,就像屏幕截圖UX)
- 24. Selenium Webdriver屏幕截圖不顯示驅動程序錯誤
- 25. 屏幕截圖使用硒webdriver的網絡的一部分
- 26. 使用webdriver捕獲屏幕截圖與背景
- 27. 在C#中使用Selenium Webdriver的當前窗口屏幕截圖#
- 28. InAppBrowser的屏幕截圖?
- 29. ffmpeg用於屏幕截圖?
- 30. Monodroid屏幕截圖內存