【问题标题】:Selenium Marionette WebDriverException: File not foundSelenium Marionette WebDriverException:找不到文件
【发布时间】:2016-06-09 15:35:31
【问题描述】:

尝试通过 selenium 上传文件时出现以下错误。

org.openqa.selenium.WebDriverException: File not found: D:\Projekte\Ticket.xml (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 10 milliseconds
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'r-177', ip: '172.16.18.177', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_79'
Session ID: ec651a7b-bca2-48f0-8dd3-9e3bfde44c1c
Driver info: org.openqa.selenium.firefox.MarionetteDriver
Capabilities [{platform=XP, specificationLevel=0, acceptSslCerts=false, browserVersion=47.0, browserName=Firefox, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, raisesAccessibilityExceptions=false, rotatable=false, appBuildId=20160604131506, takesElementScreenshot=true, command_id=1, version=, firefox_profile=UEsDBBQACAgIAE+LyUgAAAAAAAAAA..., platformVersion=6.1, platformName=Windows_NT, proxy={}, device=desktop, takesScreenshot=true}]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)
    at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:122)

INFO:两天前我使用的是 FireFox 46,而不是 MarionetteDriver,我使用的是 FirefoxDriver。一切运作良好。现在自动更新到 FireFox 47 后,我遇到了一些问题。

这是驱动程序的设置方式

FirefoxProfile fxProfile = new FirefoxProfile();

fxProfile.setPreference("browser.download.folderList", 2);
fxProfile.setPreference("browser.download.manager.showWhenStarting", false);
fxProfile.setPreference("browser.download.dir", this.workingDir);
fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk",
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

// System.setProperty("webdriver.gecko.driver", "D:/Entwicklung/marionette/wires.exe");
System.setProperty("webdriver.gecko.driver", "D:/Entwicklung/geckodriver/geckodriver.exe");

DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setPlatform(Platform.WINDOWS);
dc.setCapability(FirefoxDriver.PROFILE, fxProfile);
// dc.setJavascriptEnabled(true);
// dc.setCapability("marionette", true);

this.driver = new MarionetteDriver(dc);

这是 JAVA

WebElement field = driver.findElement(By.cssSelector("[id$=\"uploadComp_input\"]"));

field.sendKeys("D:\\Projekte\\Ticket.xml" + Keys.TAB);

由于 FireFox 47 是全新的,所以似乎很少有 WWW 上的文档,希望我能找到可以支持我的人。

感谢阅读

【问题讨论】:

  • 您的代码对我来说似乎很好,所以除非 D:\Projekte\Ticket.xml 是无效路径,否则它可能是 MarionetteDriver + FF47 组合中的错误
  • 嘿 RemcoW,是的,路径存在。我将在 GitHub 上为 MarionetteDriver 提交一个问题,希望有人会在那里回复。

标签: java selenium automation firefox-marionette


【解决方案1】:

在我的 Firefox 自动更新到 FF 47 后,我昨天遇到了同样的问题。我认为当前版本的 Selenium 与 FF 47 不兼容。

这就是我修复它的方法: 1.卸载FF 47。 2. 如果您使用的是 Selenium 2.53,请安装 FF 46 3.在你的FF选项中关闭FF自动更新 4. 运行你的 selenium 代码

我希望这会有所帮助。

【讨论】:

  • 嘿Smokey,这不是我的问题的解决方案,只是一种解决方法。现在确实有什么帮助,但是这个项目还要一段时间才能开发,所以我必须为我的用例寻找一个“真正的”解决方案......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 2017-10-04
  • 2019-07-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
相关资源
最近更新 更多