All Projects → KarlGong → easyium-python

KarlGong / easyium-python

Licence: Apache-2.0 License
easyium is an easy-to-use wrapper for selenium&appium and it can make you more focus on business not the element.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to easyium-python

Autolink
AutoLink是一个开源Web IDE自动化测试集成解决方案
Stars: ✭ 129 (+892.31%)
Mutual labels:  webdriver, selenium, appium
Java.appium
Mobile test automation using Appium in Java
Stars: ✭ 59 (+353.85%)
Mutual labels:  webdriver, selenium, appium
sahagin-java
Sahagin generates highly readable Selenium/Appium test report from your test code.
Stars: ✭ 26 (+100%)
Mutual labels:  webdriver, selenium, appium
Selion
Enabling Test Automation in Java
Stars: ✭ 252 (+1838.46%)
Mutual labels:  webdriver, selenium, appium
selenium-openapi
The missing Selenium OpenAPI spec
Stars: ✭ 25 (+92.31%)
Mutual labels:  webdriver, selenium
w3c-webdriver
W3C WebDriver JavaScript Client
Stars: ✭ 28 (+115.38%)
Mutual labels:  webdriver, selenium
WebGrid
Decentralized, scalable and robust implementation of a selenium-grid equivalent. Based on the WebDriver specification by the W3C.
Stars: ✭ 17 (+30.77%)
Mutual labels:  webdriver, selenium
PWAF
Python Webdriver Automation Framework
Stars: ✭ 37 (+184.62%)
Mutual labels:  webdriver, selenium
spydriver
🕵️ Lightweight utility to intercept WebDriver and WebElement method calls.
Stars: ✭ 24 (+84.62%)
Mutual labels:  webdriver, selenium
callisto
Callisto is an open-source Kubernetes-native implementation of Selenium Grid.
Stars: ✭ 83 (+538.46%)
Mutual labels:  webdriver, selenium
java-opensdk
TestProject Java OpenSDK
Stars: ✭ 45 (+246.15%)
Mutual labels:  selenium, appium
robotframework-anywherelibrary
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.
Stars: ✭ 62 (+376.92%)
Mutual labels:  webdriver, appium
nightwatch101
使用 Nightwatch 實現 End-to-End Testing ★
Stars: ✭ 42 (+223.08%)
Mutual labels:  webdriver, selenium
Selenium-Foundation
Selenium Foundation is an automation framework designed to extend and enhance the capabilities provided by Selenium (WebDriver).
Stars: ✭ 51 (+292.31%)
Mutual labels:  selenium, appium
SeleniumTDD
A Selenium TDD framework that incorporates key features of Selenium and TestNG which can be used to create web-based automation scripts.
Stars: ✭ 23 (+76.92%)
Mutual labels:  webdriver, selenium
Mobilenium
Mobilenium allows you to use Selenium and have access to status codes and HTTP headers, without the need for manual labor.
Stars: ✭ 22 (+69.23%)
Mutual labels:  webdriver, selenium
carina-demo
Carina demo project.
Stars: ✭ 40 (+207.69%)
Mutual labels:  selenium, appium
arquillian-graphene
Robust Functional Tests leveraging WebDriver with flavour of neat AJAX-ready API
Stars: ✭ 91 (+600%)
Mutual labels:  webdriver, selenium
page-modeller
⚙️ Browser DevTools extension for modelling web pages for automation.
Stars: ✭ 66 (+407.69%)
Mutual labels:  webdriver, selenium
hcaptcha-solver-python-selenium
hCaptcha solver and bypasser for Python Selenium. Simple website to try to solve hCaptcha.
Stars: ✭ 32 (+146.15%)
Mutual labels:  webdriver, selenium

easyium

easyium is an easy-to-use wrapper for selenium&appium and it can make you more focus on business not the element.

Find the latest version on github: https://github.com/KarlGong/easyium-python or PyPI: https://pypi.python.org/pypi/easyium

Advantages

  • easyium provides unified apis to test on browsers and devices.
  • easyium adds a global implicit wait for elements and you rarely need to consider waiting a element to be visible or existing.
  • easyium introduces a simple and clear way to build model objects for UI.
  • easyium has a better performance, the element will lazily load WebElement reference and reuses it if necessary.
  • easyium provides easy-to-use wait method for element. e.g., my_element.wait_for().not_().exists()
  • easyium provides a simple way to define a locator. e.g., use "xpath=.//mytag" instead of By.XPATH, ".//mytag"
  • easyium provides a mechanism to avoid StaleElementReferenceException.

Installation

The last stable release is available on PyPI and can be installed with pip.

$ pip install easyium

Glossary

WebDriver

It is a wrapper for selenium&appium's web driver. You can create a new instance by providing web driver type.

DynamicElement

DynamicElement is one type of Element in easyium. It refers to the element which is dynamic relative to its parent.

You can get it only by calling WebDriver.find_element(locator) or Element.find_element(locator) and you can not create a new instance by yourself.

StaticElement

StaticElement is the other type of Element in easyium. It refers to the element which is static relative to its parent.

You can create a new instance by providing parent and locator.

Example

For detailed examples, please refer to the examples folder in source distribution or visit https://github.com/KarlGong/easyium-python/tree/master/examples

Contact me

For information and suggestions you can contact me at [email protected]

Change Log

2.0.0 (compared to 1.3.8)

  • Retire python 2.x
  • Support selenium==4.1.0 and appium==2.1.1

1.3.8 (compared to 1.3.7)

  • Freeze selenium and appium version.

1.3.7 (compared to 1.3.6)

  • Add web_driver.get_viewport_size, web_driver.set_viewport_size

1.3.6 (compared to 1.3.5)

  • Support appium>=0.46

1.3.5 (compared to 1.3.4)

  • Optimize condition in Context.find_element(s).

1.3.4 (compared to 1.3.3)

  • Fix InvalidElementStateException is not caught.

1.3.3 (compared to 1.3.2)

  • Fix Element.set_selection_range() issue.

1.3.2 (compared to 1.3.1)

  • Handle ElementNotInteractableException in element actions.

1.3.1 (compared to 1.3.0)

  • Support selenium>=3.141.0 and appium>=0.30
  • Implement double_click and context_click for safari.

1.3.0 (compared to 1.2.10)

  • Support appium>=0.27 and add the new actions.
  • Shorten the locator name. e.g., accessibility_id -> acc_id
  • Add waiting for WebDriver.switch_to_context.

1.2.10 (compared to 1.2.9)

  • Support selenium>=3.13.0 and appium>=0.26

1.2.9 (compared to 1.2.8)

  • Support selenium>=3.8.0 and appium>=0.25

1.2.8 (compared to 1.2.7)

  • Fix desired_capabilities issue.

1.2.7 (compared to 1.2.6)

  • Fix the string format of web driver.

1.2.6 (compared to 1.2.5)

  • Add Remote web driver back.
  • Support selenium>=3.6.0
  • Remove Android, Ios driver.

1.2.5 (compared to 1.2.4)

  • Enhance element actions.

1.2.4 (compared to 1.2.3)

  • Support selenium>=3.4.0
  • Add Remote web driver.

1.2.3 (compared to 1.2.2)

  • Support selenium>=3.0.2, appium>=0.24
  • Add focus() for element.

1.2.2 (compared to 1.2.1)

  • Add waiting for WebDriver.switch_to_frame().
  • Add WebDriver.wait_for().reloaded().

1.2.1 (compared to 1.2.0)

  • Remove at_least argument in context.find_elements.
  • Support find element(s) condition in Context.find_element(s).

1.2.0 (compared to 1.1.5)

  • Add WebDriver Ie, Firefox, Chrome, Opera, Safari, Edge, PhantomJS, Ios and Android.
  • Add scroll_to() in WebDriver.
  • Add has_child() in Context.
  • Add get_center() in Element.
  • Add wait_for_server_started() in utils.
  • Support WebDriver.wait_for().text_equals(), WebDriver.wait_for().activity_present().
  • Support with statement for WebDriver.
  • Support at_least in Context.find_elements().
  • Support drag_and_drop_to_with_offset, drag_and_drop_by_offset for mobile.
  • Remove pre and post wait time.

1.1.5 (compared to 1.1.4)

  • Add scroll(), switch_to_new_window() to WebDriver.
  • Add scroll(), scroll_into_view() to Element.
  • Raise InvalidLocatorException when the locator is invalid.

1.1.4 (compared to 1.1.3)

  • Add get_screenshot_as_xxx() to Element.

1.1.3 (compared to 1.1.2)

  • Add docstring for apis.
  • Add post wait time for waiter.

1.1.2 (compared to 1.1.1)

  • Add pre wait time for waiter.

1.1.1 (compared to 1.1.0)

  • Optimize the waiter.
  • Add blur() for class Element.

1.1.0 (compared to 1.0.0)

  • Refactor the waiter.

1.0.0

  • Baby easyium.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].