Package: 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-pythonor PyPI:https://pypi.python.org/pypi/easyiumAdvantageseasyium 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 ofBy.XPATH,".//mytag"easyium provides a mechanism to avoid StaleElementReferenceException.InstallationThe last stable release is available on PyPI and can be installed withpip.$ pip install easyiumGlossaryWebDriverIt is a wrapper for selenium&appium’s web driver. You can create a new instance by providing web driver type.DynamicElementDynamicElement 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 callingWebDriver.find_element(locator)orElement.find_element(locator)and you can not create a new instance by yourself.StaticElementStaticElement 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.ExampleFor detailed examples, please refer to theexamplesfolder in source distribution or visithttps://github.com/KarlGong/easyium-python/tree/master/examplesContact meFor information and suggestions you can contact me atkarl.gong@outlook.comChange Log2.0.0 (compared to 1.3.8)Retire python 2.xSupport selenium==4.1.0 and appium==2.1.11.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_size1.3.6 (compared to 1.3.5)Support appium>=0.461.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.30Implement 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_idAdd waiting for WebDriver.switch_to_context.1.2.10 (compared to 1.2.9)Support selenium>=3.13.0 and appium>=0.261.2.9 (compared to 1.2.8)Support selenium>=3.8.0 and appium>=0.251.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.0Remove 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.0Add Remote web driver.1.2.3 (compared to 1.2.2)Support selenium>=3.0.2, appium>=0.24Add 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.0Baby easyium.