繁体   English   中英

使用Webdriver上传文件:sendKeys()之后没有任何反应

[英]Upload file with Webdriver: nothing happens after sendKeys()

我正在尝试通过Selenium Webdriver自动上传文件。

我已经在stackoverflow上阅读了很多与此主题有关的问题,并使用了此处提供的所有技巧,并且我的代码实际上正在测试页面上运行: https : //demo.vaadin.com/sampler/#ui/data-input/其它/上传

但是我无法在我的真实项目中使用它。 首先-我的输入字段是不可见的,因此我使用以下命令使其可见:

js.executeScript("arguments[0].setAttribute('style', arguments[1])",element, "opacity:100; width:50px");

我确认该字段确实可见。 比我通过sendKeys()方法发送文件的绝对路径:

Path path = Paths.get(value);
Path absolutePath = path.toAbsolutePath();
sendKeys(absolutePath.toString());

但是当我尝试检查该字段的值时:

String v=elem.getAttribute("value");

它总是空的。

我尝试将错误的路径发送到文件,并且此代码给了我一个错误-不是绝对路径,因此它的确在尝试向输入字段发送内容。

我想这与受测网页的代码有关,但是我没有足够的知识来分配问题。

输入元素的HTML代码如下:

<input type="file" data-bind="attr: {id: uid, name: inputName, multiple: isMultipleFiles}, disable: disabled, afterRender: onElementRender">

以下代码在C#中为我工作

SendKeys.SendWait(@"D:\filename");

SendKeys.SendWait(@"{Enter}");

添加"using System.Windows.Forms;" 在名称空间中
在参考中添加"System.Windows.Form"

您可能会发现这是因为文件路径无效。 确保:

  • 路径正确
  • 该文件存在并且可读
  • 路径是完整的,不是相对的
  • 绝对路径(不包含..)
  • 您的斜线正朝着正确的方向发展(某些浏览器在乎,有些不在乎)

当我在路径中引入..时,我发现此功能对我无声地停止工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM