창 스크린 샷
때때로 오류 메시지가 매우 분명하지 않다 인쇄 할 수 있도록 프로그램에 의한 자동화의 경우는, 실행합니다. 당신은 스크립트 실행 오류, 사진을 통해 오류의 원인을보고 매우 직관적 수있는 현재 윈도우의 스크린 샷을 저장 할 수 있습니다. WebDriver 테마 기능 get_screenshot_as_file (), save_screenshot (), get_screenshot_as_png, get_screenshot_as_base64 네 가지 방법을 제공하는 것은 현재 창을 차단합니다.
get_screenshot_as_file ()
매우 간단한 방법은, 드라이버에게이 방법을 얻는 경로는 최초의 스토리지 관리 스크린 샷 사진을 용이하게하기 위해, 사진 폴더 디렉토리를 만들고, 같은 스크린 샷 기록을 저장합니다. 다음과 같이 코드입니다 :
에서 selenium.webdriver의 수입 크롬 에서 시간을 가져 수면 # 访问百度 드라이버 = 크롬 ( " C : \의 Program Files (x86) \ 구글 \ 크롬 \ 응용 프로그램 \ chromedriver.exe " ) driver.get ( " https://www.baidu .COM / " ) driver.find_element_by_id ( " kw " ) .send_keys ( " 셀레늄 " ) 수면 ( 2 )
# 保存图片至文件夹中 driver.get_screenshot_as_file ( " D : \\ PythonProject \\ 시험 \\ 사진 \\ 바이 .JPG " ) driver.quit ()
우리는 위의 프로그램을 실행하면, 우리는 우리가 ".PNG"형식으로 저장 한 이미지를 저장하는 것이 좋습니다,하지만 이미지를 저장하는 일반적인 절차에 영향을주지 않습니다 말해, 경고 경고를 발견했다. 도에 도시 된 바와 같이.
경고警告提示如下: UserWarning : 파일 유형과 일치하지 않습니다 저장된 스크린 샷에 사용되는 이름입니다. 그것은`.png` 확장자로 끝나야합니다
), "그것은`.png` 확장자로 끝나야합니다. 유형"UserWarning
이미지를 저장하는 .png 형식의 최적화 모습. 모든 성공을 저장 두 번!
save_screenshot ()
유사한 상기 get_screenshot_as_file ()를 사용 save_screenshot () 메소드. 우리는 직접 인스턴스를 찾습니다. 다음과 같이 코드입니다 :
에서 selenium.webdriver의 수입 크롬 에서 시간을 가져 수면 # 访问百度 드라이버 = 크롬 ( " C : \의 Program Files (x86) \ 구글 \ 크롬 \ 응용 프로그램 \ chromedriver.exe " ) driver.get ( " https://www.baidu .COM / " ) driver.find_element_by_id ( " kw " ) .send_keys ( " 셀레늄 " ) 수면 ( 2 ) # save_screenshot保存图片 driver.save_screenshot ( " D : \\ PythonProject \\ 시험 \\ 사진 \\ baidu2.png " ) driver.quit ()
get_screenshot_as_png 和 get_screenshot_as_base64
보통 일반적으로 사용되지 않는 두 사람은, 당신은 일반적으로 확인할 수 있습니다. get_screenshot_as_png 이진 데이터 스트림을 획득하는 것이다 get_screenshot_as_base64 Base64 인코딩은 원래 데이터를 다시 요약 마무리시 실제로 실제 작업을 얻을 수있다.
브라우저를 닫습니다
WebDriver이 종료 제공 ()와 close () 메소드 (종료) 현재 창을 닫 사용되는 가까운 출구 관련 드라이버 및 모든 창을 닫고, ()입니다. 이용 케이스의 실행 동안, 멀티 윈도우 가공을 실시
여러 창 우리는 우리가 폐쇄 close () 메소드를 사용한다, 그들의 창을 닫으려면, 열려 있습니다.
차이 무엇) (우리의 밤을 살펴, close ()를 가지고 종료합니다. 다음과 같이 코드입니다 :
from selenium.webdriver import Chrome
from time import sleep
# 访问百度
driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.jd.com/")
# 查看当前window handle
indexwindow = driver.current_window_handle
print(indexwindow)
print('\n')
driver.find_element_by_link_text("家用电器").click()
sleep(2)
#循环遍历找到第一个window,再打开一个“手机”页面
for handle in driver.window_handles:
if handle == indexwindow:
driver.find_element_by_link_text("手机").click()
sleep(2)
# 查看所有window handles
print(driver.window_handles)
print('\n')
# 关闭当前窗口
driver.close()
# 查看现在的所有window handles,可看到只是关闭了最开始的一个window,其他两个window还在
print(driver.window_handles)
print('\n')
# 关闭所有窗口,退出相关的驱动程序
driver.quit()
上述代码运行结果可看出close()只关闭了最开始打开的一个window,后面打开的两个仍在。如下图所示:
大家可以动手试试。亲自实践一下记忆更加深刻哦~~~