我正在使用Appium在iOS设备(iPhone 6Plus)的safari浏览器上启动Google.com。 当我在模拟器上运行它并且能够在safari浏览器上打开Google.com时,此代码运行正常但是当相同的代码在设备上运行时,会遇到以下错误
无法创建新会话。 (原始错误:错误。无法找到启动Safari的按钮。请确保您使用的是appium正在使用的最新版SafariLauncher)(警告: 服务器未提供任何堆栈跟踪信息。)
我正在使用以下软件 -
以下是代码
public class Josef {
WebDriver wd;
@BeforeTest
public void beforeTest() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "DEVICE_NAME");
capabilities.setCapability("udid", "DEVICE_UDID");
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("platformVersion", "9.0");
capabilities.setCapability("autoAcceptAlerts", true);
capabilities.setCapability("app", "com.test.safarilauncher");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "safari");
wd = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);//instantiate driver
wd.manage().timeouts().implicitlyWait( 30,TimeUnit.SECONDS);
}
@Test
public void testSearchPage() throws InterruptedException {
wd.get("https://www.google.co.in");
WebElement serachField = wd.findElement(By.name("q"));
serachField.sendKeys("youtube");
serachField.sendKeys(Keys.ENTER);
System.out.println(wd.getCurrentUrl());
}
@AfterTest
public void afterTest() {
//wd.close();
} }
我还在下面对设备进行了更改
我还安装了ios_webkit_debug_proxy和 运行命令ios_webkit_debug_proxy -d设备的UDID:27753以连接设备。
EDIT1
正如利亚姆所建议但我无法成功运行该命令。运行执行时我得到的错误低于此值。
$ ./reset.sh --ios --real-safari *确定平台 *平台是mac ----重置/初始化Appium ---- 重新开始NPM *安装新的或更新的NPM模块(包括devDeps) 重置一般 *无所事事,不是git回购 重置IOS
警告:您似乎没有激活iOS7 / 8 SDK
将iOS配置设置为Appium的版本 ---- FAILURE:reset.sh退出状态1 ---- ----使用--verbose重试以查看错误----
答案 0 :(得分:1)
我遇到了这个问题。我解决它的方法是手动部署SafariLauncher。
git clone https://github.com/budhash/SafariLauncher
。build.sh
。./reset.sh --ios --real-safari
。很确定这不是预期的方法,但它是我所做的,我可以验证它是否有效。
此外,正如econoMichael所说,使用功能"browserName", "safari"
代替"app", "safariLauncher"
。
希望这有帮助,
利安
答案 1 :(得分:0)
请删除功能
capabilities.setCapability(CapabilityType.BROWSER_NAME, "safari");
并使用应用路径更新功能
capabilities.setCapability("app", Your Safari launcher app path);