起重机网站怎么做,有什么公司是建设网站的吗,淘宝上做网站,做网站需要了解的知识selenium无法识别非web的控件#xff0c;上传文件窗口为系统自带#xff0c;无法识别窗口元素。
上传文件有两种场景#xff1a;input控制上传和非input控件上传。
大多数情况都是input控件上传文件#xff0c;只有非常少数的使用自定义的非input上传文件。
一、input控…selenium无法识别非web的控件上传文件窗口为系统自带无法识别窗口元素。
上传文件有两种场景input控制上传和非input控件上传。
大多数情况都是input控件上传文件只有非常少数的使用自定义的非input上传文件。
一、input控件上传文件
查看长传文件的页面元素标签如果为input表明是通过input控件上传文件。我们可以直接采用WebElement.send_keys(‘文件地址’) 长传文件。
创建html文件如下
upload.html htmlheadmeta http-equivcontent-type contenttext/html; charsetUTF-8/titleupload file/title/headbodyh3upload file/h3input typefile namefile//body/html
示例长传C:\install.log文件。 from selenium import webdriverimport timedriver webdriver.Chrome()driver.get(rE:\XXXX\Html\upload.html) # 文件的地址driver.find_element_by_name(file).send_keys(rC:\install.log) # 上传文件time.sleep(2)driver.quit() 二、非input控件上传文件
非input控件上传文件我们要引入外部插件上传。也有两种方法一种通过pywin32上传另一种是通过autoit上传。这里我们只会讲到autoit上传文件。
下载安装autoit使用autoit Windows info 识别控件获取输入框和打开按钮的ClassinstanceClassname 3个属性。
autoit官网https://www.autoitscript.com/site/
1、autoit简介
开始菜单如图
AutoIt Windows Info 用于帮助我们识Windows控件信息。
Compile Script to.exe 用于将AutoIt生成 exe 执行文件。
Run Script 用于执行AutoIt脚本。
SciTE Script Editor 用于编写AutoIt脚本。 AutoIt开始菜单
2、autoit使用
第一步使用AutoIT Window Info获取窗口的Title、class属性 获取控件的ClassnameNN属性。如下图所示
窗口的Title为‘打开’、class属性‘#32770’ 文件名输入框的ClassnameNN属性为“Edit1” 打开按钮的ClassnameNN属性为“Button1” 文件名输入框 属性 打开按钮 属性
第二步打开SciTE Script Editor编辑器编写脚本如下 $CmdLine[0] ; 2 参数的总数量不虚赋值$CmdLine[1] ; 上传文件路径;在10秒内等待打开窗口出现WinWait(打开,,10);ControlFocus(title,text,ClassnameNN) 识别Window窗口ControlFocus(打开, ,);向“文件名”输入框内输入本地文件的路径ControlSetText(打开, , Edit1, $CmdLine[1])Sleep(2000);单击打开按钮ControlClick(打开, ,Button1);
代码解释 ; 表示注释 $CmdLine[0] 获取的是命令行参数的总数在例中$CmdLine[0]2参数化时使用 $CmdLine[1]~$CmdLine[63] 获取的是命令行参数第1到第63位这个方式最多只能获取63个参数 WinWait(title,texttimeout)设置timeout秒钟用于等待窗口出现其用法与WebDriver 所提供的implicitly_wait()类似。 ControlFocus(title,text,ClassnameNN) 方法用于识别Window窗口。3个参数窗口Title属性 ControlSetText(title,text, ClassnameNN, param)用于向“文件名”输入框内输入本地文件的路径。 Sleep(2000)表示固定休眠2000毫秒。 ControlClick(title,text, ClassnameNN)用于点击上传窗口中的“打开”按钮。 参数说明 title 表示窗口的标题即窗口的title属性 text 控件的文本属性可以使用替代 ClassnameNN 控件的ClassnameNN属性 param 需要传入的参数 timeout 时间秒 第三步通过Aut2ExeCompile Script to.exe工具将脚本转成exe文件 生成exe可执行文件
生产exe文件后先通过命令行试试
打开网页上传弹出窗口 -- cmd中执行该脚本如下
CMD upfile.exe D:\1.html
可以使用python的os模块来调用改文件了代码如下 from selenium import webdriverimport osimport timedriver webdriver.Chrome()driver.get(rE:\code\Python\pythonDoc\自动化练习\Html\upload.html)driver.find_element_by_name(file).click()time.sleep(1)# 这里可以对传参进行参数化os.system(rE:\upload.exe C:\install.log)time.sleep(3)driver.quit()
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走
这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你