{"id":13776278,"url":"https://github.com/luisxiaomai/robotframework-anywherelibrary","last_synced_at":"2025-10-23T22:30:59.141Z","repository":{"id":16013478,"uuid":"18756964","full_name":"luisxiaomai/robotframework-anywherelibrary","owner":"luisxiaomai","description":"AnywhereLibrary is a cross platform(desktop browser,Android,iOS) testing library for Robot Framework that leverages the [Selenium 2(WebDriver)] libraries internally to control a web browser and [appium] as mobile test automation framework for use with native and hybrid app. ","archived":false,"fork":false,"pushed_at":"2022-07-18T08:03:03.000Z","size":895,"stargazers_count":64,"open_issues_count":0,"forks_count":37,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T22:09:28.783Z","etag":null,"topics":["appium","python","robot-framework","webdriver"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luisxiaomai.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-14T10:32:04.000Z","updated_at":"2024-05-07T08:59:32.000Z","dependencies_parsed_at":"2022-09-13T21:40:33.448Z","dependency_job_id":null,"html_url":"https://github.com/luisxiaomai/robotframework-anywherelibrary","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/luisxiaomai/robotframework-anywherelibrary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisxiaomai%2Frobotframework-anywherelibrary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisxiaomai%2Frobotframework-anywherelibrary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisxiaomai%2Frobotframework-anywherelibrary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisxiaomai%2Frobotframework-anywherelibrary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luisxiaomai","download_url":"https://codeload.github.com/luisxiaomai/robotframework-anywherelibrary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luisxiaomai%2Frobotframework-anywherelibrary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280706324,"owners_count":26376965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appium","python","robot-framework","webdriver"],"created_at":"2024-08-03T18:00:21.772Z","updated_at":"2025-10-23T22:30:58.820Z","avatar_url":"https://github.com/luisxiaomai.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Web Testing"],"readme":"# [AnywhereLibrary for robotframework](https://github.com/luisxiaomai/robotframework-anywherelibrary)\r\n[![PyPI version](https://badge.fury.io/py/robotframework-anywherelibrary.svg)](https://badge.fury.io/py/robotframework-anywherelibrary) \r\n[![Build status](https://travis-ci.org/luisxiaomai/robotframework-anywherelibrary.svg?branch=master)](https://travis-ci.org/luisxiaomai/robotframework-anywherelibrary)\r\n[![codecov](https://codecov.io/gh/luisxiaomai/robotframework-anywherelibrary/branch/master/graph/badge.svg)](https://codecov.io/gh/luisxiaomai/robotframework-anywherelibrary)\r\n[![Join the chat at https://gitter.im/anywherelibrary/Lobby](https://badges.gitter.im/anywherelibrary/Lobby.svg)](https://gitter.im/anywherelibrary/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\r\n[![GitHub license](https://img.shields.io/badge/license-ApacheLicense2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)\r\n## Introduction\r\n\r\nAnywhereLibrary is a cross platform (desktop browser, Android, iOS) testing library for Robot Framework that leverages the [Selenium 2 (WebDriver)](\u003chttp://seleniumhq.org/docs/03_webdriver.html/\u003e) libraries internally to control a web browser and [Appium](\u003chttp://appium.io/\u003e) as mobile test automation framework for use with native and hybrid apps. \r\n\r\nThis library is especially suitable for handling [SPA (single-page apps)](http://en.wikipedia.org/wiki/Single-page_application) with responsive design patterns. With this you only need to generate a set of scripts to cover all platforms (desktop browser, Android, iOS). \r\n\r\nOn the other hand, not any UI test automation framework is made for your real business. If this library isn't suitable for your business, it's highly recommended that you fork this repository as a prototype for UI test automation. Customize your own AnywhereLibrary in accordance to your actual business requirements.\r\n\r\n## Installation\r\n\r\n```bash\t\r\npython3 setup.py install\r\n```\r\n## Directory Layout\r\n\r\n#### doc/\r\n\u003e Keyword documentation.\r\n    \r\n#### sample-code/\r\n\u003e A sample test case which can run in desktop browser, sample Android and iOS webview apps with different platform parameter inputs.\r\n\r\n#### src/base\r\n\u003e Python source code.\r\n    \r\n#### src/cfg\r\n\u003e Configuration file which stores all parameters for initializing the driver.\r\n\r\n## Usage\r\n\r\nTo write tests with Robot Framework and AnywhereLibrary, AnywhereLibrary must be imported into your RF test suite. See [Robot Framework User Guide](https://code.google.com/p/robotframework/wiki/UserGuide) for more information.\r\n\r\nAs it uses Appium for its mobile solution, please make sure your Appium server is up and running. For how to use Appium, please refer to the [Appium Documentation](http://appium.io/getting-started.html).\r\n\r\n##### Before Running the Test Case\r\nYou must use the *`Initial Driver`* keyword with platform value as the parameter input; after the test case you must use *`Tear Down Driver`* keyword to tear down the related driver. Also you need to do some modifications in *`configuration.xml`* file in *`/AnywhereLibrary/cfg`*.\r\n\r\n##### Locating elements\r\n\r\nAll keywords in AnywhereLibrary that need to find an element on the page take an argument, `locator`. AnywhereLibrary supports a subset of the WebDriver locator strategies. Currently available locator strategies are:\r\n\r\n    find by \"class\" (i.e., ui component type)\r\n    find by \"xpath\" (i.e., an abstract representation of a path to an element, with certain constraints)\r\n\r\nSupported strategies are:\r\n\r\n| *Strategy* | *Example*                                  | *Description*                                |\r\n| ---------- | ------------------------------------------ | -------------------------------------------- |\r\n| xpath      | `Click`  | `//div[@id='my_element']`       | Matches with arbitrary XPath expression      |\r\n| xpath      | `Click`  | `xpath=//div[@id='my_element']` | Matches with arbitrary XPath expression      |\r\n| class      | `Click`  | `class=android.widget.Button`   | Matches another element by their class name  |\r\n| ...        | Coming soon...  | Coming soon...           |                                              |\r\n\r\n## Running Sample Cases\r\n\r\n```bash\r\npybot --variable platform:chrome webviewTest.txt\r\npybot --variable platform:firefox webviewTest.txt\r\npybot --variable platform:iphone webviewTest.txt\r\n```\r\n## Documentation\r\n\r\nKeywords at a Glance:\r\n\r\n- `Initial Driver`\r\n- `Tear Down Driver`\r\n- `Click`\r\n- `Type`\r\n- `Element Find`\r\n- `Get Text`\r\n- `Get Value`\r\n- `Verify Text`\r\n- `Verify Value`\r\n- `Is Element Present`\r\n- `Page Should Contain Element`\r\n- `Page Should Not Contains Element`\r\n- `Wait For Element Present`\r\n- `Wait No Such Element Present`\r\n- `Switch To Native`\r\n- `Switch To Webview`\r\n- `Capture Page Screenshot`\r\n- `Execute Javascript`\r\n\r\n* mobile gestures\r\n  - Coming Soon...\r\n\r\nMore details about keyword documentation could be found at [Keyword Documentation](http://luisxiaomai.github.io/robotframework-anywherelibrary/doc/AnywhereLibraryDocument.html)\r\n\r\n## Plan\r\n\r\n* Add more keywords.\r\n\r\n## FAQ\r\n\r\nTODO\r\n\r\n## License\r\n\r\n* [MIT](https://opensource.org/licenses/MIT)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisxiaomai%2Frobotframework-anywherelibrary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluisxiaomai%2Frobotframework-anywherelibrary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisxiaomai%2Frobotframework-anywherelibrary/lists"}