多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium(C#)实现图片上传的两种方式-自动化测试

更新时间:2023-01-31 09:34:48 作者:多测师 浏览:42

在用Selenium Webdriver实现自动化测试时,会遇到上传图片的问题,下面介绍两种实现方式:

Selenium(C#)实现图片上传的两种方式-自动化测试

一、直接利用Selenium实现。

如果测试对象直接使用file类型的input实现图片上传,例如:<input type="file" name="filename">,我们可以利用Selenium提供的方法实现文件上传。

IWebElement webElement = driver.FindElement(By.Id("filename"))

webElement.SendKeys(filePath);

这种方式是使用SendKeys方法将文件路径filePath(相对或者绝对)传给file元素,就可以绕过选择窗口直接上传图片了。

二、利用AutoIt实现。

1.AutoIt是一款利用模拟键盘按键,鼠标移动和窗口/控件的组合实现自动化操作的软件。

2.AutoIt实现上传过程

1>打开AutoIt Windows Info工具,鼠标点击Finder Tool,鼠标将变成一个小风扇形状的图标,按住鼠标左键拖动到需要识别的控件上。

2>使用SciTE Script. Editor编辑器编写脚本,如下所示:

;ControlFocus("title","text",controlID) Edit1=Edit instance 1

ControlFocus("打开", "","Edit1")

; Wait 10 seconds for the Upload window to appear

  WinWait("[CLASS:#32770]","",10)

; Set the File name text on the Edit field

  ControlSetText("打开", "", "Edit1", "E:\img\1.JPG")

  Sleep(2000)

; Click on the Open button

  ControlClick("打开", "打开(&O)","Button1");

AutoIt脚本完成后,可以通过菜单“Tools”->“Go”运行脚本(运行时上传窗口处于打开状态)。

说明:

ControlFocus()方法用于识别Window窗口;

WinWait()设置10秒钟用于等待窗口的显示,其用法与WebDriver所提供的ImplicitlyWait()类似;

ControlSetText()用于向“文件名”输入框内输入本地文件的路径;

Sleep()方法与C#中Thread.Sleep()方法用法一样,也以毫秒为单位,Sleep(2000)表示固定休眠2秒;

ControlClick()用于点击上传窗口中的“打开”按钮。

3>脚本运行正常后,将其保存为au3格式文件,然后打开Compile Script. to.exe工具,生成exe程序,方便C#程序调用。

4>通过C#的Process.Start()方法调用exe程序并执行

以上内容为大家介绍了自动化测试中Selenium(C#)实现图片上传的两种方式,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部