Selenium(Python)調用pywin32上傳圖片


import unittest
from time import sleep

import os
from selenium import webdriver
import win32api
import win32con
import win32clipboard as cut

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


def shearPlate(copyString):
cut.OpenClipboard()
cut.EmptyClipboard()
cut.SetClipboardData(win32con.CF_UNICODETEXT, copyString)
cut.CloseClipboard()
# 設置剪切板內容

VK_CODE = {
"ctrl":17,
"v":86,
"enter":13
}
# 鍵盤映射字典

def keyDown(keyName):
win32api.keybd_event(VK_CODE[keyName], 0, 0, 0)
# 按下按鍵

def keyUp(keyName):
win32api.keybd_event(VK_CODE[keyName], 0, win32con.KEYEVENTF_KEYUP, 0)
# 松開按鍵

class UploadPicture(unittest.TestCase):

def setUp(self):
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.get("https://www.baidu.com/")
self.driver.implicitly_wait(15)

def test_uploadPicture(self):
self.driver.find_element_by_xpath(".//*[@id='form']/span[1]/span").click()
# 點擊百度相機圖標
WebDriverWait(self.driver, 15).until(
lambda x: x.find_element_by_xpath(".//*[@id='form']/div/div[2]/div[2]/input"))
self.driver.find_element_by_xpath(".//*[@id='form']/div/div[2]/div[2]/input").click()
# 點擊本地上傳圖片
sleep(2)

projectPath = os.getcwd()
# 獲取當前工程的路徑
shearPlate(projectPath + "\\img.jpg")
# 把圖片路徑復制粘貼到剪切板中

keyDown("ctrl")
keyDown("v")
# 按下Ctrl+V

keyUp("ctrl")
keyUp("v")
# 松開Ctrl+V

keyDown("enter")
# 按下回車鍵
keyUp("enter")
# 松開回車鍵
sleep(8)

searchResultTitle = self.driver.title
baiduImageTitle = "百度識圖——以圖搜信息,發現更多可能"
WebDriverWait(self.driver, 15).until(EC.title_is(baiduImageTitle))

self.assertEqual(searchResultTitle, baiduImageTitle)

def tearDown(self):
self.driver.close()
self.driver.quit()

if __name__ == '__main__':
unittest.main()


免責聲明!

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



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