Selenium C#将文本加载到文本框中可以在IDE中使用,但不能在Webdriver中使用

时间:2014-01-30 19:04:59

标签: c# selenium-webdriver selenium-ide

我正在尝试使用Selenium Webdriver&amp ;;将图像加载到浏览器中C#。 当我使用Selenium IDE它工作正常时,IDE只需将文件路径输入文本框并加载图像。 但是,当我将相同的代码导入Visual Studio并通过Webdriver运行时,我得到一个“InvalidOperationException:元素必须是用户可编辑的才能清除它”。

我怀疑这与正在使用的浏览器实例有关。当我通过IDE运行测试时,它使用已经打开的Firefox实例,当我通过Webdriver运行它时会打开一个新实例。这听起来不错吗?如果有的话有解决方法吗?

如果我单击文本框或texbox右侧的“选择”按钮,它会打开一个文件对话框,但是当我切换到对话框时,我失去了对驱动程序的控制。

否则有没有办法可以加载这个图像文件?

从IDE上传的代码片段如下所示 在此先感谢您的帮助。 贝琳达

driver.FindElement(By.Id( “Barcode_fileInput”))清除(); driver.FindElement(By.Id( “Barcode_fileInput”))的SendKeys( “C:\用户\贝琳达\图片\ ValidImageType.jpg”);

2 个答案:

答案 0 :(得分:0)

只需使用driver.FindElement(By.Id("Barcode_fileInput")).SendKeys("C:\Users\Belinda\Pictures\ValidImageType.jpg");

即可

不要包含driver.FindElement(By.Id("Barcode_fileInput")).Clear();

答案 1 :(得分:0)

<span class="btn btn-success btn-file">
  <i class="fa fa-plus"></i>
  Upload File
  <input type="file" multiple="" name="files[]">
</span>

如果您的html看起来像上面那样使用指向输入标记的选择器。

Driver.FindElement(By.Name("files[]")).SendKeys("C:\Users\Belinda\Pictures\ValidImageType.jpg");

如果您的网站不限制该文件,则应该上传该文件。我正在使用C#