Selenium3 + Python3 테스트 시리즈의 열한 자동화 - 귀하의 브라우저 창 스크린 샷을 닫습니다

창 스크린 샷

  때때로 오류 메시지가 매우 분명하지 않다 인쇄 할 수 있도록 프로그램에 의한 자동화의 경우는, 실행합니다. 당신은 스크립트 실행 오류, 사진을 통해 오류의 원인을보고 매우 직관적 수있는 현재 윈도우의 스크린 샷을 저장 할 수 있습니다. 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,后面打开的两个仍在。如下图所示:

 

 

   大家可以动手试试。亲自实践一下记忆更加深刻哦~~~

 

추천

출처www.cnblogs.com/wuweiblogs/p/11431133.html