{ "info": { "author": "jim", "author_email": "jim@126.com", "bugtrack_url": null, "classifiers": [], "description": "Sikuli Robot Framework Library\r\n==============================\r\n\r\n## Introduction\r\nSikuli Robot Framework Library provide keywords to test UI through [Sikuli](http://www.sikuli.org/).\r\n\r\n## Keyword Documentation\r\n[Keywords](http://rainmanwy.github.io/robotframework-SikuliLibrary/doc/SikuliLibrary.html)\r\n\r\n## Overview\r\n![](https://github.com/rainmanwy/robotframework-SikuliLibrary/blob/master/docs/img/architecture.png \"architecture\")\r\n* This library is implemented with [Robot Framework Remote Library](https://code.google.com/p/robotframework/wiki/RemoteLibrary)\r\n* Sikuli api is encapsulated as Robot keywords, and explored to clients with [jrobotremoteserver](https://github.com/ombre42/jrobotremoteserver)\r\n* Client is implemented with python and use Robot remote library to communicate with server side\r\n* Users could implement their own clients with different languages which support xml rpc\r\n\r\n## Differences With Other Similiar Sikuli Libraries\r\n* Robot Remote Library technology is used, different client part program languages are supported\r\n* Do not plan to expose sikuli api to Robot Framework directly. All sikuli api are encapsulated as Keywords.\r\n * Wait functionality is added for each operations\r\n ```java\r\n public void click(String image) throws Exception{\r\n wait(image, Double.toString(this.timeout));\r\n try {\r\n screen.click(image);\r\n }\r\n catch (FindFailed e) {\r\n capture();\r\n throw new ScreenOperationException(\"Click \"+image+\" failed\"+e.getMessage(), e);\r\n }\r\n }\r\n ```\r\n * Keyword to handel similiar images issue, could check \"click_in\" test suite in demo folder to get details\r\n```java\r\n public void clickIn(String areaImage, String targetImage) throws Exception {\r\n wait(areaImage, Double.toString(this.timeout));\r\n Match match = screen.find(areaImage);\r\n System.out.println(areaImage + \" is found!\");\r\n match.click(targetImage);\r\n capture(match.find(targetImage));\r\n }\r\n```\r\n* Operating images could be shown in robot logs, easy to troubleshooting\r\n![](https://github.com/rainmanwy/robotframework-SikuliLibrary/blob/master/docs/img/log.png \"log\")\r\n\r\n\r\n## Installation\r\n### Pip installation\r\n*If target OS is Windows, could use pip to install directly\r\n```\r\npip install robotframework-SikuliLibrary\r\n```\r\n*If target OS is Linux, please download linux version from [pypi](https://pypi.python.org/pypi/robotframework-SikuliLibrary)\r\n### Build With Maven\r\n* Clone this project, and execute maven package command\r\n* One zip file will be created in \"target\" folder, could unzip this file and add to PYTHONPATH\r\n\r\n###Note\r\n* For Linux, there are some dependencies need be installed, please check [sikuli quick start](http://www.sikulix.com/quickstart.html) to get more details.\r\n\r\n## Example\r\n### Hello World Example\r\n```\r\n*** Settings ***\r\nDocumentation Sikuli Library Demo\r\nTest Setup Add Needed Image Path\r\nTest Teardown Stop Remote Server\r\nLibrary SikuliLibrary\r\n\r\n*** Variables ***\r\n${IMAGE_DIR} ${CURDIR}\\\\img\r\n\r\n*** Test Cases ***\r\nWindows Notpad Hellow World\r\n Open Windows Start Menu\r\n Open Notepad\r\n Input In Notepad\r\n Quit Without Save\r\n\r\n*** Keywords ***\r\nAdd Needed Image Path\r\n Add Image Path ${IMAGE_DIR}\r\n\r\nOpen Windows Start Menu\r\n Click windows_start_menu.png\r\n\r\nOpen Notepad\r\n Input Text search_input.png notepad\r\n Click notepad.png\r\n Double Click notepad_title.png\r\n\r\nInput In Notepad\r\n Input Text notepad_workspace.png Hello World\r\n Text Should Exist Hello World\r\n\r\nQuit Without Save\r\n Click close.png\r\n Click dont_save.png\r\n```\r\n### Ruby Client Example\r\n```ruby\r\nrequire \"xmlrpc/client\"\r\nrequire \"pathname\"\r\n\r\nclient = XMLRPC::Client.new(\"127.0.0.1\", \"/\", 10000)\r\nclient.call(\"get_keyword_names\")\r\nclient.call(\"run_keyword\", \"addImagePath\", [Pathname.new(File.dirname(__FILE__)).realpath.to_s+\"/img\"])\r\nclient.call(\"run_keyword\", \"click\", [\"windows_start_menu.png\"])\r\nclient.call(\"run_keyword\", \"waitUntilScreenContain\", [\"search_input.png\", \"5\"])\r\nclient.call(\"run_keyword\", \"input_text\", [\"search_input.png\", \"notepad\"])\r\nclient.call(\"run_keyword\", \"click\", [\"notepad.png\"])\r\nclient.call(\"run_keyword\", \"doubleClick\", [\"notepad_title.png\"])\r\nclient.call(\"run_keyword\", \"click\", [\"close.png\"])\r\n```\r\n### Click In Example\r\n```\r\n*** Settings ***\r\nDocumentation Sikuli Library Click In Example\r\nTest Setup Add Needed Image Path\r\nTest Teardown Stop Remote Server\r\nLibrary SikuliLibrary\r\nLibrary OperatingSystem\r\n\r\n*** Variables ***\r\n${IMAGE_DIR} ${CURDIR}\\\\img\r\n\r\n*** Test Cases ***\r\nClick In Example\r\n Open Example UI\r\n Click Right OK Button\r\n Click Left OK Button\r\n\r\n*** Keywords ***\r\nAdd Needed Image Path\r\n Add Image Path ${IMAGE_DIR}\r\n\r\nOpen Example UI\r\n Run chrome ${CURDIR}\\\\html\\\\click_in_demo.html\r\n\r\nClick Right OK Button\r\n Click In right_area.png target.png\r\n\r\nClick Left OK Button\r\n Click In left_area.png target.png\r\n\r\n```\r\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "simple,test", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "myrobotlibrary", "package_url": "https://pypi.org/project/myrobotlibrary/", "platform": "any", "project_url": "https://pypi.org/project/myrobotlibrary/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/myrobotlibrary/0.0.4/", "requires_dist": null, "requires_python": null, "summary": "just a simple test", "version": "0.0.4" }, "last_serial": 2056916, "releases": { "0.0.1.dev38": [ { "comment_text": "", "digests": { "md5": "9262f7591122efe4c4d0cd5fb6f5d839", "sha256": "4c41fa60295234e02d5faea90e32f220626a0a06e5f412642e78bde1e1989b0b" }, "downloads": -1, "filename": "myrobotlibrary-0.0.1.dev38.zip", "has_sig": false, "md5_digest": "9262f7591122efe4c4d0cd5fb6f5d839", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173188, "upload_time": "2016-04-10T13:23:28", "url": "https://files.pythonhosted.org/packages/87/d8/d125de90fa3abc278770778b85678124c134c728817e6ab8697138b39053/myrobotlibrary-0.0.1.dev38.zip" } ], "0.0.2.dev38": [ { "comment_text": "", "digests": { "md5": "74573530920562e54e0eba4d47098772", "sha256": "5b923895622a8f9ff9e92491eda9c4faf3e9a36b7d84fb8999a49ac6655d4c79" }, "downloads": -1, "filename": "myrobotlibrary-0.0.2.dev38.zip", "has_sig": false, "md5_digest": "74573530920562e54e0eba4d47098772", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173388, "upload_time": "2016-04-10T14:01:25", "url": "https://files.pythonhosted.org/packages/cb/86/86f7c48239c875e5ecba164df8bfc6b5cacface776d41d28f59eb645b0b0/myrobotlibrary-0.0.2.dev38.zip" } ], "0.0.3.dev38": [ { "comment_text": "", "digests": { "md5": "f73634b79b34bd6e5e3a71717627d536", "sha256": "ec0c6aa0a22e2f4024566915969feb36ba679d31aaf9a874a90e26e8d06e3b03" }, "downloads": -1, "filename": "myrobotlibrary-0.0.3.dev38.zip", "has_sig": false, "md5_digest": "f73634b79b34bd6e5e3a71717627d536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173388, "upload_time": "2016-04-11T01:41:30", "url": "https://files.pythonhosted.org/packages/86/ad/c26df458ac19ed6310c874bb3ff8d957a8319d8604c4a27efa1a3ed94f32/myrobotlibrary-0.0.3.dev38.zip" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7e30ba0ebbf93ad881cadb44c7d48b8b", "sha256": "ca5a2211b66c6ea8026427e21a26efe3ad484423df84ef7e165fab399dfa851a" }, "downloads": -1, "filename": "myrobotlibrary-0.0.4.zip", "has_sig": false, "md5_digest": "7e30ba0ebbf93ad881cadb44c7d48b8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172321, "upload_time": "2016-04-11T02:21:16", "url": "https://files.pythonhosted.org/packages/8f/ac/db568c22ad0ddb7ad9bd5b4523f5ce27e1e027240eb7e52a806105da1864/myrobotlibrary-0.0.4.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e30ba0ebbf93ad881cadb44c7d48b8b", "sha256": "ca5a2211b66c6ea8026427e21a26efe3ad484423df84ef7e165fab399dfa851a" }, "downloads": -1, "filename": "myrobotlibrary-0.0.4.zip", "has_sig": false, "md5_digest": "7e30ba0ebbf93ad881cadb44c7d48b8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172321, "upload_time": "2016-04-11T02:21:16", "url": "https://files.pythonhosted.org/packages/8f/ac/db568c22ad0ddb7ad9bd5b4523f5ce27e1e027240eb7e52a806105da1864/myrobotlibrary-0.0.4.zip" } ] }