Add python sample accessing webview

This commit is contained in:
Isaac Murchie
2014-05-30 09:08:23 -07:00
parent 45d6dd8b5a
commit 6145b8ce4e
2 changed files with 134 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
"""An example of Appium running on Sauce, with a webview.
This test assumes SAUCE_USERNAME and SAUCE_ACCESS_KEY are environment variables
set to your Sauce Labs username and access key."""
import unittest
import os
import httplib
import base64
from random import randint
from appium import webdriver
try:
import json
except ImportError:
import simplejson as json
from time import sleep
from selenium.webdriver.common.keys import Keys
SAUCE_USERNAME=os.environ.get('SAUCE_USERNAME')
SAUCE_ACCESS_KEY=os.environ.get('SAUCE_ACCESS_KEY')
base64string = base64.encodestring('%s:%s' % (SAUCE_USERNAME, SAUCE_ACCESS_KEY))[:-1]
class WebViewIOSSauceTests(unittest.TestCase):
def setUp(self):
# set up appium
app = 'http://appium.s3.amazonaws.com/WebViewApp6.0.app.zip'
self.driver = webdriver.Remote(
command_executor = 'http://%s:%s@ondemand.saucelabs.com:80/wd/hub' % (SAUCE_USERNAME, SAUCE_ACCESS_KEY),
desired_capabilities = {
'appium-version': '1.1.0',
'name': 'Appium iOS WebView Test',
'platformName': 'iOS',
'deviceName': 'iPhone Simulator',
'platformVersion': '7.1',
'app': app
})
def tearDown(self):
print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
self.driver.quit()
def _set_test_status(self, jobid, passed=True):
# Report the status of your test to Sauce
body_content = json.dumps({"passed": passed})
connection = httplib.HTTPConnection("saucelabs.com")
connection.request('PUT', '/rest/v1/%s/jobs/%s' % (SAUCE_USERNAME, jobid),
body_content,
headers={"Authorization": "Basic %s" % base64string})
result = connection.getresponse()
return result.status == 200
def test_get_url(self):
url_el = self.driver.find_element_by_xpath('//UIAApplication[1]/UIAWindow[1]/UIATextField[1]')
url_el.send_keys('http://www.google.com')
go_el = self.driver.find_element_by_name('Go')
go_el.click()
self.driver.switch_to.context('WEBVIEW')
search = self.driver.find_element_by_name('q')
search.send_keys('sauce labs')
search.send_keys(Keys.RETURN)
# allow the page to load
sleep(1)
try:
self.assertEquals('sauce labs - Google Search', self.driver.title)
self._set_test_status(self.driver.session_id, True)
except:
self._set_test_status(self.driver.session_id, False)
if __name__ == '__main__':
if not (SAUCE_USERNAME and SAUCE_ACCESS_KEY):
print "Make sure you have SAUCE_USERNAME and SAUCE_ACCESS_KEY set as environment variables."
else:
unittest.main()

View File

@@ -0,0 +1,52 @@
"""
Simple iOS WebView tests.
"""
import unittest
import os
from random import randint
from appium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
class WebViewIOSTests(unittest.TestCase):
def setUp(self):
# set up appium
app = os.path.join(os.path.dirname(__file__),
'../../apps/WebViewApp/build/Release-iphonesimulator',
'WebViewApp.app')
app = os.path.abspath(app)
self.driver = webdriver.Remote(
command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities={
'app': app,
'deviceName': 'iPhone Simulator',
'platformName': 'iOS'
})
def tearDown(self):
self.driver.quit()
def test_get_url(self):
url_el = self.driver.find_element_by_xpath('//UIAApplication[1]/UIAWindow[1]/UIATextField[1]')
url_el.send_keys('http://www.google.com')
go_el = self.driver.find_element_by_name('Go')
go_el.click()
self.driver.switch_to.context('WEBVIEW')
search = self.driver.find_element_by_name('q')
search.send_keys('sauce labs')
search.send_keys(Keys.RETURN)
# allow the page to load
sleep(1)
self.assertEquals('sauce labs - Google Search', self.driver.title)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(WebViewIOSTests)
unittest.TextTestRunner(verbosity=2).run(suite)