From 0cebb5ad5220305756adee1b60c8185907251e11 Mon Sep 17 00:00:00 2001 From: drpy Date: Sat, 31 Aug 2013 18:04:46 +0200 Subject: [PATCH] improved python sample codes (android + selendroid mode) --- sample-code/examples/python/android2.py | 11 +++++- sample-code/examples/python/selendroid.py | 47 +++++++++++++++++++++++ 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 sample-code/examples/python/selendroid.py diff --git a/sample-code/examples/python/android2.py b/sample-code/examples/python/android2.py index dfd09afc6..4b915b521 100644 --- a/sample-code/examples/python/android2.py +++ b/sample-code/examples/python/android2.py @@ -9,14 +9,14 @@ PATH = lambda p: os.path.abspath( desired_caps = {} desired_caps['device'] = 'Android' desired_caps['browserName'] = '' -desired_caps['version'] = '4.2' +desired_caps['version'] = '4.3' desired_caps['app'] = PATH('../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk') desired_caps['app-package'] = 'com.example.android.apis' desired_caps['app-activity'] = '.ApiDemos' driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) -el = driver.find_element_by_name("Animation") +el = driver.find_element_by_xpath('//text[contains(@value, "Animat")]') assert el.text == "Animation" el = driver.find_element_by_tag_name("text") @@ -27,4 +27,11 @@ el.click() els = driver.find_elements_by_tag_name("text") assert els[2].text == "Activity" + +driver.back() + +el = driver.find_element_by_class_name("android.widget.ListView") +js_params = {"element": el.id, "text": "Views"} +driver.execute_script("mobile: scrollTo", js_params) + driver.quit() diff --git a/sample-code/examples/python/selendroid.py b/sample-code/examples/python/selendroid.py new file mode 100644 index 000000000..1c5fcde9f --- /dev/null +++ b/sample-code/examples/python/selendroid.py @@ -0,0 +1,47 @@ +import os +import time +from selenium import webdriver + +# Returns abs path relative to this file and not cwd +PATH = lambda p: os.path.abspath( + os.path.join(os.path.dirname(__file__), p) +) + +# think times can be useful e.g. when testing with an emulator +THINK_TIME = 5. + +desired_caps = {} +desired_caps['device'] = 'selendroid' +desired_caps['browserName'] = '' +desired_caps['version'] = '4.3' +desired_caps['app'] = PATH('../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk') +desired_caps['app-package'] = 'com.example.android.apis' +desired_caps['app-activity'] = '.ApiDemos' + +driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) + +el = driver.find_element_by_partial_link_text("Animat") +assert el.text == "Animation" + +el = driver.find_element_by_class_name("android.widget.TextView") +assert el.text == "Accessibility" + +el = driver.find_element_by_link_text("App") +el.click() +time.sleep(THINK_TIME) + +els = driver.find_elements_by_class_name("android.widget.TextView") +assert els[1].text == "Activity" + +driver.back() +time.sleep(THINK_TIME) + +el = driver.find_element_by_link_text("Animation") +flick = webdriver.TouchActions(driver).flick_element(el, 0, -100, 0) +flick.perform() + +el = driver.find_element_by_link_text("Views") +el.click() +time.sleep(THINK_TIME) + +driver.quit()