daluu / autoitdriverserver Goto Github PK
View Code? Open in Web Editor NEWAutoIt through WebDriver or a webdriver-compatible server for AutoIt
AutoIt through WebDriver or a webdriver-compatible server for AutoIt
Hi,
After configuring all the required steps suggested by you. I get the below error.
org.openqa.selenium.WebDriverException: Error forwarding the new session cannot find : Capabilities [{browserName=AutoIt}]
I have below code in my java file
public void setUp() throws Exception {
capabilities = new DesiredCapabilities();
capabilities.setCapability("browserName", "AutoIt");
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}
Pls note:
I did start my selenium grid and hub
Currently, seems notepad demo will visibly only work if you have notepad open before running the demo. No issues with calculator demo. Yet both demos launch the application the same way. Wonder why notepad doesn't launch correctly in the demo, as no exception/error is returned.
Will have to debug then fix.
Currently, executing the server with defaults (no parameters) results in the following error:
…\autoitdriverserver_python>python server.py
File “server.py”, line 182
print “script2exec: %s” % script
^
SyntaxError: invalid syntax
Need to find and fix all the Python 3.x incompatibilities in the current server implementation that was targeted/tested against Python 2.7.x. Should also check if the code will run with Python 2.5/2.6 as well.
I am facing issues (getting Attribute Error) while running CalculatorTest.java (not changed sample code) from eclipse.
My java package included selenium library. Also AutoIt was installed in local machine along with AutoItX3_64.dll registered. AutoItDriverServer is running successfully on port 4723.
I have followed the instructions provided and can you please help me to resolve this issue?
Bottle v0.13-dev server starting up (using WSGIRefServer())...
Listening on http://127.0.0.1:4723/
Hit Ctrl-C to quit.
Traceback (most recent call last):
File "D:\autoitdriver\AutoItDriverServer-master\autoitdriverserver_python\bott
le.py", line 996, in _inner_handle
return route.call(*_args)
File "D:\autoitdriver\AutoItDriverServer-master\autoitdriverserver_python\bott
le.py", line 1954, in wrapper
rv = callback(_a, **ka)
File "server.py", line 78, in create_session
app.caretCoordMode = dc.get('caretCoordMode') if dc.get('caretCoordMode') is
not None else app.caretCoordMode
File "D:\autoitdriver\AutoItDriverServer-master\autoitdriverserver_python\bott
le.py", line 1139, in setattr
raise AttributeError("Attribute %s already defined. Plugin conflict?" % name
)
AttributeError: Attribute caretCoordMode already defined. Plugin conflict?
127.0.0.1 - - [27/Mar/2016 13:27:15] "POST /wd/hub/session HTTP/1.1" 500 761
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.
Hi,
I'm involved in writing a book on WebDriver for Manning. We're looking for another coauthor. Do you think you might be interested in getting involved?
Alex
Hello Friend,
I'm very happy because you have developed a very useful thing.I want to use this AutoItDriverServer for remote execution (CalculatorTest.java ) but getting error while running from hub can you please tell me why it is failing.
I have done the primary setup in our client machine my server.py is running and through hub I'm trying to execute this sample script.
Noticed while using Python WebDriver client bindings. This seemed specific to older version of bindings. Updating to latest bindings resolved the issue. Logging for reference.
The particular issue was execution this type of commands:
action = ActionChains(driver)
action.send_keys("4*4=").perform()
with older binding (forget which version), it would throw exception of unsupported/unimplemented API error from server because it was trying to call element active. Upgrading the binding that error went away.
Hi David - I love the work you've done. I recently completed a project with the AutoItX4Java library and ran into some issues with running it on the Selenium grid. I've done a great deal of research on what is possible in this regard and thus far have found nothing in regard to using AutoItX4Java.
However, I came across your project and it sounds like exactly what I need. I am not skilled enough to contribute much with where you are on the project, but was wondering if there were plans to continue on or if anyone else had picked it up? To me, this is possibly one of the most valuable automation tools I've come across and would love to see it finished.
Hope all is well! Thanks for the work you've already done!
I am getting error in below line
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub" ), capabilities);
Based on recent issues using this server, issue #8 and #9, look into packaging the AutoItDriverServer in a simple installer (e.g Windows MSI installer file or pip install autoitdriverserver
) so that it installs itself and all dependencies without user having to deal with all the prequisite install steps, and be able to run it globally any with something like autoitdriverserver [options]
.
Also update documentation on wiki & readme to make it easier to read & understand, particularly in terms of formatting and for novice beginner users.
Running such a command:
((JavascriptExecutor) driver).executeScript("C:\Users\dluu\Documents\GitHub\AutoItDriverServer\sample-code\demo.au3","Hello","World");
throws exception from client. Tested with Selenium JAR 2.41 and 2.33. Not sure if version specific issue or not. No problem executing same script call from latest Python bindings. Will need to investigate further later on. Seems to be interaction/integration issue between client request and server.
org.openqa.selenium.WebDriverException: illegal character
Command duration or timeout: 12 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: 3cc9dd54-66f3-4317-b010-5e9f745ba257
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, browserConnectionEnabled=true, webStorageEnabled=true, nativeEvents=false, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=14.0.1}]
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.RemoteWebDriver.executeScript(RemoteWebDriver.java:504)
at SeleniumIntegrationTest.test(SeleniumIntegrationTest.java:68)
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)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: illegal character
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'
Driver info: driver.version: unknown
at .(http://www.toolsqa.com/automation-practice-form:68)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.