当前位置: 首页 > 知识库问答 >
问题:

使用Selenium进行文件上传的自动化测试在Internet Explorer中的行为方式不同

司徒骞尧
2023-03-14

我正在尝试通过使用C#中的Seleniumwebdrivers进行自动化测试来测试文件上传功能。使用Mozilla Firefox浏览器可以很好地工作,但当我使用Internet explorer时,它的行为方式不同。我的HTML是这样的:

<input type="file" name="fileUpload" id="fileUpload" class="Uploader">

我正在使用下面的代码来完成文件上传。

IWebDriver driver = new InternetExplorerDriver(); // have the recent IE webdrivers added as reference to the project
driver.FindElement(By.Id("fileUpload")).SendKeys("Path where file is located");

这在Firefox浏览器中工作正常(InitializeDriver.driver=new FirefoxDRiver();),但是当我尝试使用Internet Explorer的代码时,而不是从本地路径上传文件,它单击浏览按钮并从本地文件夹中打开窗口以选择文件(类似于我们如何浏览和选择要上传的文件)并停在那里,文件上传没有发生。我不确定我们是否可以使用自动化从这个窗口中选择文件。我看了许多帖子,大多数帖子建议使用我已经在使用的SendKeys,但在Internet Explorer中遇到这种行为。我正在尝试使用IE最新版本进行测试。

共有1个答案

百里胜泫
2023-03-14

获取3.4版的Selenium IE驱动程序。第3587期讨论了这个问题。3.4版于上周晚些时候发布,已经修复了我的大部分问题。

 类似资料:
  • 自动化测试将被用于进一步的任务中,并且还将被广泛应用在实际项目中。 为什么我们需要测试? 当我们在写一个函数时,我们通常可以想象出它应该做什么:哪些参数会给出哪些结果。 在开发期间,我们可以通过运行程序来检查它并将结果与预期进行比较。例如,我们可以在控制台中这么做。 如果出了问题 —— 那么我们会修复代码,然后再一次运行并检查结果 —— 直到它工作为止。 但这样的手动“重新运行”是不完美的。 当通

  • 问题内容: 我认为,每个将Webdriver用于测试自动化的人都必须意识到其在Web开发中的巨大优势。 但是,如果文件上传是您的webflow的一部分,则会出现一个巨大的问题。它不再是测试自动化。浏览器的安全限制(调用文件选择)实际上使自动化测试成为不可能。 Afaik唯一的选择是让webdriver单击文件上传按钮,使线程hibernate,让开发人员/测试人员手动选择文件,然后执行其余的网络流

  • 我有一个ASP。NET文件上载控件,当您单击上载按钮选择要上载的文件时,该控件将打开一个窗口。但问题是,网络驱动程序无法识别窗口,因此无法选择要上载的文件。 我在stackoverflow中找到了许多使用sendkey输入文件路径的解决方案。我认为当你有html文件上传控制时,这是有效的。在我的情况下,我有ASP。NET文件上传控件,它没有文本框,我可以在其中使用sendkey输入文件路径。 我该

  • 本文向大家介绍在Python中进行自动化单元测试的教程,包括了在Python中进行自动化单元测试的教程的使用技巧和注意事项,需要的朋友参考一下 一、软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状态开

  • 我的自动化测试有一些问题。我的EclipseIDE中大约有50个测试用例。所有测试用例都在不同的类中。另外,我还有一个基类,它包含@beforeclass和@afterclass。在@beforeclass中,浏览器打开,URL打开,网站URL打开,然后执行登录过程。然后我的测试用例工作。它们都以@Test注释开始。我使用TestNG套件将它们连接起来。基类:我的基类。java类MyBaseCla

  • 为Electron应用编写自动测试, 你需要一种 "驱动" 应用程序的方法。 Spectron 是一种常用的解决方案, 它允许您通过 WebDriver 模拟用户行为。 当然,也可以使用node的内建IPC STDIO来编写自己的自定义驱动。 自定义驱动的优势在于,它往往比Spectron需要更少的开销,并允许你向测试套件公开自定义方法。 我们将用 Node.js 的 child_process