Python+Selenium練習編の4-screenshotホームページ自動スクリーンショット

2098 ワード

コード:
from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("python")
driver.find_element_by_css_selector("#su").click()
sleep(2)
driver.get_screenshot_as_file(r"F:\scrrenshot\baidu.png")
sleep(2)
driver.get("http://www.51zxw.net")
driver.find_element_by_link_text("    ").click()        #      
driver.get_screenshot_as_file(r"F:\scrrenshot\51zxw.jpg") #         
sleep(4)
driver.close()

一、スクリーンショット方法
1.get_screenshot_as_file(self, filename)
--この方法は現在のwindowのスクリーンショットを取得し、IOErrorが現れるとFalseに戻り、スクリーンショットはTrueに正常に戻ります.
filenameパラメータはファイルを保存するパスです.Usage: driver.get_screenshot_as_file('/Screenshots/foo.png')
 
2.get_screenshot_as_base64(self)
--この方法もスクリーンショットを取得し、base 64の符号化フォーマットを保存し、HTMLインタフェースでショットを出力する際に使用します.
例えば、htmlテストレポートにスクリーンショットを入れたいです.Usage: driver.get_screenshot_as_base64()
 
3.get_screenshot_as_png(self)--これはスクリーンショットを取得し、バイナリデータを保存し、めったに使用しない.Usage: driver.get_screenshot_as_png()
二、異常後断図
1.異常を投げられるように、位置決め登録ボタンのidを間違ったidに変更しました.
2.同じファイル名が上書きされないように、画像に名前を付けるときにタイムスタンプを付けます.
3.ファイルのパスです.ここに直接書かれたファイル名は、現在のスクリプトと同じパスです.画像が他のファイルパスに出力される場合は、ファイルの絶対パスが必要です.
4.スクリーンショットの結果、スクリーンショットが切断されていなければFalseを返し、スクリーンショットが成功するとTrueを返します.
from selenium import webdriver
from time import sleep
import time
url_login="https://passport.cnblogs.com/user/signin"
driver=webdriver.Firefox()
driver.get(url_login)
try:
    driver.find_element_by_id("input").send_keys(u"  -  ")
    driver.find_element_by_id("input").send_keys("xxx")
    #  id   ,       
    driver.find_element_by_id("signin1").click()
except Exception as msg:
    print(u"     %s"%msg)
    #           
    nowTime = time.strftime("%Y%m%d.%H.%M.%S")
    t = driver.get_screenshot_as_file("%s.jpg" % nowTime)
    print(u"    : %s"%t)