非input框的自动化文件上传方法
2021-05-28 20:01
标签:使用方法 回车 path 自动化测试 url des baidu sele ret (此处用百度的上传图片搜索做演示) 首先创建driver对象用于打开百度网址,然后定位并点击照相机图标 接着点击“选择文件” 按钮 注意:此时不能用selenium自带的click方法,可能是浏览器驱动cookie过期,所以无法做到驱动打开window的文件窗口,然后无法click,会出现报错。 这时候就可以用click问题的终极解决方案—js操作click。 大家可以看看我别的帖子“自动化测试click不了情况,及解决方案”(欢迎大佬提意见):https://www.cnblogs.com/zz-winkie/p/14768685.html 点击完毕后,会出现文件选择框。就可执行以下操作: 安装命令: 导入pywinauto.keyboard库的send_keys方法【此处的send_keys方法和selenium的send_keys方法不一样】 创建一个操作桌面窗口的对象 【此时可以形象的理解为这里创建了一个人,帮你操作】 叫这个对象切换窗口到这个文件上传的选择框 定位到文件路径输入框,click点击它。Send_keys键入文件所在的路径,回车输入完毕 定位到文件名输入框,type_keys键入文件名 【这里可以使用send_keys,但是要注意使用方法,最好还是用type_keys吧】 点击打开,完成文件上传 具体操作代码如下 非input框的自动化文件上传方法 标签:使用方法 回车 path 自动化测试 url des baidu sele ret 原文地址:https://www.cnblogs.com/zz-winkie/p/14769325.html关于非input框的自动化文件上传方法
使用第三方库pywinauto (适用于window端)
from selenium import webdriver #从selenium库中导入webdriver包
from time import sleep
driver = webdriver.Chrome()
url = ‘https://www.baidu.com/‘
driver.get(url)
driver.find_element_by_xpath(‘//*[@id="form"]/span[1]/span[1]‘).click()
driver.find_element_by_class_name(‘upload-pic‘).click()
sleep(2)
driver.execute_script("document.getElementsByClassName(‘upload-pic‘)[0].click()")
sleep(2)
pip install pywinauto
from pywinauto.keyboard import send_keys
# 使用pywinautoc创建一个操作桌面窗口的对象
win1 = pywinauto.Desktop()
# 选择文件上传的窗口 窗口句柄默认为‘打开’
bow1 = win1[‘打开‘]
# 选择文件地址输入框,点击激活
bow1["Toolbar3"].click()
# 键盘输入上传文件的路径
send_keys(r"文件的绝对路径")
# 键盘输入回车,打开该路径
send_keys("{VK_RETURN}")
# 选中文件名输入框,输入文件名
bow1["文件名(&N):Edit"].type_keys("520告白日.jpg")
# bow1["文件名(&N):Edit"].click()
# send_keys("xx文件名")
# 点击打开
bow1["打开(&O)"].click()
上一篇:关于JSON.parse()和JSON.stringify()知识点的普及((已解决)Unexpected token o in JSON at position 1)
下一篇:SheetJS读取日期为指定格式