Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
daluu opened this issue Jan 22, 2015 · 1 comment
Open

Comments

@daluu
Copy link
Owner

daluu commented Jan 22, 2015

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.

@daluu
Copy link
Owner Author

daluu commented Feb 16, 2015

Would be nice to check if the other language bindings run into issue with file uploads when send keys. Including unofficial bindings. .NET, Ruby, Javascript, PHP, Perl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant