python+selenium之頁面元素截圖


對頁面中元素截圖,需執行如下步驟:

1)截圖頁面整張圖片

2)定位頁面中元素位置

3)計算頁面元素的left、top、right、bottom

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
from PIL import Image
driver=webdriver.Chrome()

driver.get("https://user.qunar.com/passport/login.jsp")
driver.maximize_window()
time.sleep(4)
driver.save_screenshot("qu.png")
code=driver.find_element_by_xpath('//*[@id="vcodeImg"]')
"""計算頁面元素的在整個頁面上的坐標"""
left=code.location['x']
top=code.location['y']
right=code.size["width"]+left
bottom=code.size["height"]+top
time.sleep(2)
""""根據頁面元素的坐標,截圖元素"""
ele=Image.open("qu.png")
ele=ele.crop((left,top,right,bottom))
ele.save("4.png")
常見問題:頁面元素截圖失敗,未截取到指定的元素
原因:PC顯示比例的問題。因selenium的顯示比例是100%,而其操作PC的顯示比例通常125%或者150%,從而截取不到指定的元素。桌面上右擊”顯示設置“,即可查看顯示比例

 

 解決方式:

1)直接將”顯示設置“中的比例修改成”100%“

2)driver.execute_script('document.body.style.zoom="0.8"')  #將125%的顯示比例修改成100。125%*0.8=100%




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM