mirror of
https://github.com/appium/appium.git
synced 2026-01-13 22:00:05 -06:00
Add python sample accessing webview
This commit is contained in:
82
sample-code/examples/python/ios_sauce_webview.py
Normal file
82
sample-code/examples/python/ios_sauce_webview.py
Normal 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()
|
||||
52
sample-code/examples/python/ios_webview.py
Normal file
52
sample-code/examples/python/ios_webview.py
Normal 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)
|
||||
Reference in New Issue
Block a user