我正在尝试使用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”);
答案 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#