Skip to content

Bad zip file exception on try sendKeys a file with local file detector #2

@daluu

Description

@daluu

Performing a sendKeys operation with local file detector enabled like:

((RemoteWebDriver) autoitDriver).setFileDetector(new LocalFileDetector());
autoitDriver.findElement(By.className("Edit1")).sendKeys("C:\Users\dluu\Pictures\birdoparac.jpg");

throws exception:

org.openqa.selenium.WebDriverException: class 'zipfile.BadZipfile'
Command duration or timeout: 31 milliseconds
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32'
System info: host: 'dluu-T420s', ip: '172.20.200.87', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_07'
Session ID: 127.0.0.1:4723
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{caretCoordMode=1, mouseClickDelay=10, platform=WINDOWS, browserName=AutoIt, mouseCoordinateMode=1, winDetectHiddenText=0, mouseClickDownDelay=10, winTextMatchMode=1, mouseClickDragDelay=250, winWaitDelay=250, sendCapslockMode=1, version=0.1, expandEnvStrings=0, sendKeyDelay=5, sendKeyDownDelay=5, sendAttachMode=0, winTitleMatchMode=1, winSearchChildren=0, takesScreenshot=false}]
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:193)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
at org.openqa.selenium.remote.RemoteWebElement.upload(RemoteWebElement.java:105)
at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:93)
at SeleniumIntegrationTest.test(SeleniumIntegrationTest.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Server logs don't indicate much. Didn't have proxy server setup to monitor request & response. To look into more later.

Comparatively, same sendKeys through Python (which has local file detector enabled by default, no turn off without modifying Python bindings source code) does not run into this problem. The zip is created and sent over then extracted successfully, with latest Python bindings. Only a problem here in Java, tested with JAR 2.41 and 2.33.

Workaround is to disable local file detector and send path as is in Java for now, assuming remote node has the path to file.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions