python简单的系统组件间上传文件的操作(适用非input元素)

在用pyautogui上传文件的坑:

  • 为了让页面弹出上传图片的对话框,小编用了各种方法都失败(比如用click点击,键盘点击,execute_script方式js代码等)。
  • 定位元素点击click方法没有效果,换用鼠标操作点击后成功;废话不多说,直接上代码:
import time
import pyautogui as ui
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
# 隐式等待
driver.implicitly_wait(20)
# 进入被测网址
driver.get("file:///C:/Users/test/Desktop/page.html")
# 放大窗口
driver.maximize_window()
# 强制等待
time.sleep(0.5)
# 定位元素,并用鼠标点击操作
file_elem_2 = driver.find_element(By.XPATH, '//input[@name="s_file"]')
ActionChainsDriver = ActionChains(driver).click(file_elem_2).perform()
# 系统之间要等待
time.sleep(3)
# 写入文件
ui.write(r"C:\Users\test\Desktop\api.xlsx")
time.sleep(3)
# 输入回车
ui.press('enter', presses=2)
time.sleep(2)

posted @ 2021-11-18 12:36  执着的狼  阅读(311)  评论(0)    收藏  举报