2017-12-20 74 views
1

난 다음, 파이썬과 셀레늄 및 파일 이름에 표시되는 화면의 시간에 특정 페이지의 스크린 샷을 얻으려고 노력과 안돼서은 코드입니다 : 그것을 실행할 때 BTWSelenium에서 현재 시간의 파일을 저장하는 방법은 무엇입니까?

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을 ("% Y- % M- % D % H : %의 M : %의 S", gmtime()))'문자열 안에서 할 것인가? –

+0

결과 파일 이름이 2017-12-20 12 : 26 : 55처럼 보일 것으로 예상합니다. – pavelryzhkov

+0

좋아요, 해당 평가는 문자열 내에서 수행되지 않습니다. 파이썬은 문자열 내용에 대해 아무런 가정을하지 않습니다. –

답변

1

파이썬은 문자열의 내용에 대해 아무런 가정을하지 않습니다. datetime을 삽입하려면 먼저 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' 

은 당신이 지금까지 이렇게 해왔하는 문자열로 표현을 삽입한다 -

다음은 간단한 예입니다. 앞서 언급했듯이, 파이썬은 문자열에 대한 어떠한 가정도하지 않으며, 어떤 식 으로든 내용을 평가하지 않습니다.

+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 : 창 크기는 다음과 같은 코드를 사용하십시오 : 당신이 예상하는 일

# Maximize window size. 
self.driver.set_window_size(1280, 800, self.driver.window_handles[0])