sendkeys不适用于文件输入selenium 2.39 Firefox 31

时间:2014-10-10 18:58:57

标签: javascript firefox file-io selenium-webdriver sendkeys

我正致力于为我的网站自动上传文件。我使用的是FF 31,硒2.39。我看到的问题是,使用以下java代码的文件上传适用于Chrome 37,但不适用于FF 31。 我尝试使用硒43和硒39用于FF 28-31版本,但没有结果。然后我添加了内嵌样式,不透明度从0设置为1,因为输入元素的样式使用javascript不可见。执行javascript后我打印出特征。我看到该元素已启用并显示,并且不透明度设置为1,这是我应用的所有更改。仍然我的sendKeys()似乎没有使用它。虽然我确实想到AutoIT我不想添加另一个工具,为我自己买更多麻烦(我的网站/ selenium / browser / autoit之间的兼容性问题)。你们可以建议一些东西我可以做些什么来解决这个问题?

WebElement input = driver.findElement(By.xpath("//input[@id='img']"));
input.sendKeys("C:/Pictures/img1.gif");

final JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('img').style.opacity=\"1\";");

<i class="coral-Icon">
<input id="img" class="FileUpload" type="file" onchange="preview();" data-upload-url="URL" name="file">
</i>

System.out.println("enabled??== " + input.isEnabled()+ " === "+ input.isDisplayed()+" style "+ input.getAttribute("style")); 
console-output : enabled??== true === true style opacity: 1;

1 个答案:

答案 0 :(得分:0)

这是我使用的windows m / c上的路径错误。我添加了一个基于运行的OS的检查功能来更改文件的路径。

String imgPath = imagePath.replaceAll(&#34; /&#34;,&#34; \\&#34;);