2017-12-20 42 views
1

私はPythonとセレンと初心者だと、ファイル名に表示スクリーンショットの時点で特定のページのスクリーンショットを取得しようと、次のコードスニペットです:Seleniumに現在時刻のファイルを保存する方法は?

from selenium import webdriver 
import time 
from time import gmtime, strftime 
browser = webdriver.Chrome() 
browser.get('https://google.com') 
time.sleep(3) 
browser.get_screenshot_as_file('C:\\path\\screenshots\\(strftime("%Y-%m-%d %H:%M:%S", gmtime())).png') 
browser.quit() 

ところで、それを実行しているとき、私はクロームのウィンドウサイズを設定する方法?

主な質問:私は間違って何をしていますか?

+0

をあなたは '(のstrftime( ":%のM%S%Y-%M-%D%H" は何を期待しています)) 'は文字列の中で行いますか? –

+0

結果のファイル名は2017-12-20 12:26:55と思われます。 – pavelryzhkov

+0

これは文字列の中で評価されていません。 Pythonは文字列の内容については何も仮定していません。 –

答えて

1

Pythonはあなたの文字列の内容について何も仮定しません。日時を挿入する場合は、最初にgmtimeを呼び出して結果を取得し、str.formatの文字列に挿入する必要があります。あなたは遠い列として式を挿入しているので、何をしてきた

>>> "C:\\path\\screenshots\\{}.png".format(strftime("%Y-%m-%d %H:%M:%S", gmtime())) 
'C:\\path\\screenshots\\2017-12-20 12:37:29.png' 

- ここ

は簡単な例です。私が言及したように、Pythonはあなたの文字列について何も仮定せず、その内容を評価しません。

+0

清潔で正確なコード(+1) – DebanjanB

+0

@DebanjanBありがとう!とても有難い。 –

-1
from selenium import webdriver 
import time 
from time import gmtime, strftime 
browser = webdriver.Chrome() 
filename = (strftime("%Y-%m-%d %H%M%S", gmtime())) 
browser.get_screenshot_as_file("C:\\parh\\screenshots\\" + filename + ".png") 
browser.quit() 
print (strftime("%Y-%m-%d %H:%M:%S", gmtime())) 
print (filename) 
+0

私の編集を見て、文字列連結の代わりに 'str.format'をお勧めします。 –

0

私はそのために(クラスの)このような方法を使用しています:

import datetime 

def make_screenshot(self): 
    """A method for making a screenshot of the screen.""" 

    self.driver.get_screenshot_as_file("./screenshots/" + 
             str(datetime.datetime.now().time()) + 
             ".png") 

は、それはあなたのお役に立てば幸い!

PS:ウィンドウサイズの場合は、次のコードを使用します、のgmtime()

# Maximize window size. 
self.driver.set_window_size(1280, 800, self.driver.window_handles[0]) 
関連する問題