如何使用Selenium Web驱动程序上传文件/句柄窗口

2guxujil  于 2023-01-02  发布在  其他
关注(0)|答案(4)|浏览(146)

我正在尝试自动化一个场景,在这个场景中,我必须上传文档,但我无法处理 * 文件上传 * 窗口,一旦我单击Web应用程序上的“选择文件”按钮。
我使用C#语言和Chrome浏览器。

db2dz4w8

db2dz4w81#

我的C#测试用例:

[Test, Description("JAVA_67350: Filename is shown as tooltip in browse button after upload is cancelled in Firefox browser ")]
[Component(Component.UploadBox)]
[Priority(Priority.High)]
[CustomerID(160100)]

public void JAVA_67350()
{
    driver.Navigate().GoToUrl("http://localhost/JavaScript/CR_Samples/JavaScriptSamples/JAVA_67350/UploadBoxUntitled.html");
    driver.Manage().Window.Maximize();
    Thread.Sleep(3000);
    //clicking upload button
    driver.FindElement(By.XPath(".//*[@id='UploadDefault']/div[1]/input[2]")).Click();
    Thread.Sleep(TimeSpan.FromSeconds(1));
    //file uploading
    SendKeys.SendWait("C:\\UploadBox\\Examplefordocx.docx" + @"{RIGHT}");
    Thread.Sleep(500);
    SendKeys.SendWait(@"{TAB}");
    Thread.Sleep(500);
    SendKeys.SendWait(@"{TAB}");
    Thread.Sleep(500);
    SendKeys.SendWait(@"{ENTER}");
    Thread.Sleep(3000);
    }
xa9qqrwz

xa9qqrwz2#

您可以使用发送键

using System.Windows.Forms;

SendKeys.SendWait(@"C:\temp\file.txt");
SendKeys.SendWait(@"{Enter}");
ecfsfe2w

ecfsfe2w3#

Selenium没有任何内置功能来处理文件上传/与windows对话框(打印对话框)/windows弹出窗口交互。
如果要与windows对象交互,可以使用AutoIT
这是一个与windows对象交互的很好的工具,而且非常容易使用。请参阅下面的链接了解使用步骤。
http://www.toolsqa.com/seleniu-webdriver/autoit-selenium-webdriver/

bvk5enib

bvk5enib4#

如果File元素具有'input type = file',则可以尝试以下操作:element(by.css('input[type="file"]')).sendKeys(pathToFile);
这不会打开文件上传窗口对话框,而是将所需值发送到输入文件字段。
有关详情,请参阅以下连结:http://seleniumeasy.com/selenium-tutorials/uploading-file-with-selenium-webdriver
How to upload file using Selenium WebDriver in Java
此致,
萨克希

相关问题