在Python種實現appium滾動截圖的方法如下。
from PIL import Image
import os
#開啟2個影象
image1 = os.getcwd() +"/pics/1.png"
image2 = os.getcwd() +"/pics/2.png"
img_info1 = Image.open(image1)
img_data1 = info1.getdata()
img_info2 = Image.open(image2)
img_data2 = info2.getdata()
#獲取第一張圖最後一行和倒數第五行的畫素資訊
last_pix = []
for w in range(img_info1.width):
last_pix.append(img_data1.getpixel((w, info1.height-1)))
last_five_px = []
last_five_px.append(img_data1.getpixel((w, info1.height-6)))
#尋找在第二張圖中和第一張圖最後一行相等的行
#如果相等行存在,去看往前數5行是否也相等
#這個判斷可能要根據頁面的複雜度多校驗幾次,約簡單的圖,越要多校驗幾行
row = 0
print("圖片高度是:{}".format(img_info2.height))
for h in range(img_info2.height):
current = []
current_five = []
for w in range(img_info2.width):
current.append(img_data2.getpixel((w, h)))
try:
current_five.append(img_data2.getpixel((w, h-5)))
except Exception as e:
print("處理h-5為空的情況")
if current == last_pix and current_five == last_five_px:
print("第{}行是一樣的".format(row))
break
else:
row =row + 1
#裁剪第二張圖
print(img_info2.size)
cropped2 = info2.crop((0, row+1, info2.width, info2.height))
cropped2.save(os.getcwd()+"/pics/temp.png")
#拼接圖片
newpic = Image.new("RGB", (img_info1.width, cropped2.height + info1.height))
newpic.paste(img_info1, (0, 0))
newpic.paste(cropped2, (0, info1.height+1))
newpic.save(os.getcwd()+"/pics/temp3.png")
在Python種實現appium滾動截圖的方法如下。
from PIL import Image
import os
#開啟2個影象
image1 = os.getcwd() +"/pics/1.png"
image2 = os.getcwd() +"/pics/2.png"
img_info1 = Image.open(image1)
img_data1 = info1.getdata()
img_info2 = Image.open(image2)
img_data2 = info2.getdata()
#獲取第一張圖最後一行和倒數第五行的畫素資訊
last_pix = []
for w in range(img_info1.width):
last_pix.append(img_data1.getpixel((w, info1.height-1)))
last_five_px = []
for w in range(img_info1.width):
last_five_px.append(img_data1.getpixel((w, info1.height-6)))
#尋找在第二張圖中和第一張圖最後一行相等的行
#如果相等行存在,去看往前數5行是否也相等
#這個判斷可能要根據頁面的複雜度多校驗幾次,約簡單的圖,越要多校驗幾行
row = 0
print("圖片高度是:{}".format(img_info2.height))
for h in range(img_info2.height):
current = []
current_five = []
for w in range(img_info2.width):
current.append(img_data2.getpixel((w, h)))
try:
current_five.append(img_data2.getpixel((w, h-5)))
except Exception as e:
print("處理h-5為空的情況")
if current == last_pix and current_five == last_five_px:
print("第{}行是一樣的".format(row))
break
else:
row =row + 1
#裁剪第二張圖
print(img_info2.size)
cropped2 = info2.crop((0, row+1, info2.width, info2.height))
cropped2.save(os.getcwd()+"/pics/temp.png")
#拼接圖片
newpic = Image.new("RGB", (img_info1.width, cropped2.height + info1.height))
newpic.paste(img_info1, (0, 0))
newpic.paste(cropped2, (0, info1.height+1))
newpic.save(os.getcwd()+"/pics/temp3.png")