selenium webdriver - Appium and iOS Mobile Safari automation, can it be done? -
i cannot automation working appium vs safari mobile browser on ios emulator. in java project, safari launch, browser not navigate specified website. can tell me i'm doing wrong code?
1) launch appium application on osx machine. configured following settings:
ip address: 127.0.0.1 port: 4723 force device: checked - iphone user mobile safari: checked (note: no messages scroll across appium application log screen when run project. previously, got complaints missing ios 6.0 library, when duplicated 6.1 ios library , renamed directory 6.0, messages went away.)
2) launch eclipse , open appium project
3) right-click on test code , click runas junit
4) iphone emulator launches -- iphone ios 6.1
5) mobile safari launches...and goes (should going cnn.com). no errors.
can appium java projects used mobile-safari automation? don't see examples of safari automation in appium sample code repo.
what gives?
thanks,
larry
------------------java code below----------------------------------------
eclipse juno being used run java/appium project. here simplified listing of java junit project code (which, when modified accordingly, , used iwebdriver , deprecated iphonedriver(), works fine):
import org.junit.before; import org.junit.after; import org.junit.test; import org.openqa.selenium.by; import org.openqa.selenium.webdriver; import org.openqa.selenium.webelement; import org.openqa.selenium.remote.desiredcapabilities; import org.openqa.selenium.remote.remotewebdriver; public class appiumiphonewebdriverdemo { private string baseurl; private webdriver driver; @before public void setup() throws exception { webdriver driver; desiredcapabilities cap = new desiredcapabilities(); //cap.setcapability("", ""); //cap.setcapability("browsername", ""); //cap.setcapability("os", "ios 6.1"); cap.setcapability("device", "iphone simulator"); cap.setcapability("app", "safari"); driver = new remotewebdriver(new url("http://localhost:4723/wd/hub"), cap); baseurl = "http://www.cnn.com"; } @after public void teardown() throws exception { driver.quit(); } @test public void test_searchworks() throws exception { this.driver.get(baseurl); driver.quit(); } }
you can this.
see code
"use strict"; require("./helpers/setup"); var wd = require("wd"), _ = require('underscore'), serverconfigs = require('./helpers/appium-servers'); describe("ios safari", function () { this.timeout(300000); var driver; var allpassed = true; before(function () { var serverconfig = process.env.sauce ? serverconfigs.sauce : serverconfigs.local; driver = wd.promisechainremote(serverconfig); require("./helpers/logging").configure(driver); var desired = _.clone(require("./helpers/caps").ios81); desired.browsername = 'safari'; if (process.env.sauce) { desired.name = 'ios - safari'; desired.tags = ['sample']; } return driver.init(desired); }); after(function () { return driver .quit() .finally(function () { if (process.env.sauce) { return driver.saucejobstatus(allpassed); } }); }); aftereach(function () { allpassed = allpassed && this.currenttest.state === 'passed'; }); it("should url", function () { return driver .get('https://www.google.com') .sleep(1000) .waitforelementbyname('q', 5000) .sendkeys('sauce labs') .sendkeys(wd.special_keys.return) .sleep(1000) .title().should.eventually.include('sauce labs'); }); it("should delete cookie passing domain , path", function () { var complexcookiedelete = function(name, path, domain) { return function() { path = path || '|'; return driver.setcookie({name: name, value: '', path: path, domain: domain, expiry: 0}); }; }; return driver .get('http://en.wikipedia.org') .waitforelementbycss('.mediawiki', 5000) .allcookies() // 'geoip' cookie there .deletecookie('geoip') .allcookies() // 'geoip' still there, because set on // .wikipedia.org domain .then(complexcookiedelete('geoip', '/', '.wikipedia.org')) .allcookies() // 'geoip' cookie gone .sleep(1000); }); });
Comments
Post a Comment