Selenium实现文件窗口上传文件

发表于:2023-4-23 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:给天使看的戲    来源:博客园

  说明:根据点击“上传文件“按钮 ,在弹出的窗口中选择文件并上传。
  通过窗口上传文件 :
  1、pyautogui
  安装:pip install pyautogui
  优点:跨平台(window\linux\mac)
  缺点:只能选择一个文件,文件路径有中文可能会出问题
  2、pywinauto 
  安装:pip install pywinauto
  优点:只能在windows 上使用
  缺点:可以选择多个文件,路径中有中文也可以
  示例代码如下:
  from selenium import webdriver
  from selenium.webdriver.common.by import By
  from time import sleep
  from pywinauto.keyboard import send_keys
  import pyautogui
  driver = webdriver.Chrome()
  driver.maximize_window() #全屏
  # driver.set_window_size(width=700,height=500) #设置窗口大小
  sleep(1)
  #登录系统
  driver.get("http://xxxxxxxxxx/login")
  driver.find_element(By.XPATH,'//input[@type="text"]').send_keys('username')
  driver.find_element(By.XPATH,'//input[@type="password"]').send_keys('password')
  #进入菜单--子菜单页面
  driver.find_element(By.XPATH,'//button[@type="button"]').click()
  sleep(3)
  driver.find_element(By.XPATH,'//span[text()="系统管理"]').click()
  sleep(1)
  driver.find_element(By.XPATH,'//span[text()="固件管理"]').click()
  sleep(1)
  #点击“新增”按钮
  driver.find_element(By.XPATH,'//button[@class="el-button el-button--primary el-button--mini is-plain"]').click()
  sleep(1)
  #打开的窗口中输入各字段信息
  driver.find_element(By.XPATH,'//input[@placeholder="请输入版本名称"]').send_keys('xiaosu')
  sleep(2)
  driver.find_element(By.XPATH,'//input[@placeholder="请输入硬件版本,如 H743_v2"]').send_keys('aaaaa')
  sleep(2)
  driver.find_element(By.XPATH,'//input[@placeholder="请输入固件版本,如 kpj_2.1.6"]').send_keys('bbbbbb')
  sleep(2)
  driver.find_element(By.XPATH,'//div[@class="el-textarea el-input--mini"]//textarea[@placeholder="请输入更新说明"]').send_keys('cccccc')
  sleep(2)
  #附件上传,点击“选择文件”,此时弹出文件窗口
  driver.find_element(By.XPATH,'//em[text()="选择文件"]').click()
  sleep(5)
  #弹出的选择文件窗口中,选择文件
  #-----pywinauto-----                       #此方法还没有调试成功,大家可以告诉我一下,互相探讨一下!
  # send_keys('D:\\210508OTAnew.bin')
  # send_keys('{VK_RETURN}')
  #-----pyautogui----
  pyautogui.write('D:\\210508OTAnew.bin')
  pyautogui.press('enter',2)     #此处“2”表示再次确认并关闭文件窗口
  sleep(5)
  # driver.find_element(By.XPATH,'//span[text()="保存"]').click()
  # sleep(2)
  driver.quit()
  下面动图中省略了的登录-进入菜单画面,直接点击“新增”按钮后的操作,如下:
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号