首页 文章

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

提问于
浏览
1

我正在尝试使用Selenium Webdriver&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
    <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#

  • 0

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

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

相关问题