我正在使用 Appium 在 iOS 设备(iPhone 6Plus)的 Safari 浏览器上启动 Google.com。当我在模拟器上运行它并且能够在 safari 浏览器上打开 Google.com 时,此代码运行良好,但是当相同的代码在设备上运行时,遇到以下错误
无法创建新会话。(原始错误:错误。找不到启动 Safari 的按钮。确保您使用的是 appium 正在使用的最新版本的 SafariLauncher)(警告:服务器未提供任何堆栈跟踪信息)。
我正在使用以下软件-
- Appium:1.4.13
- Mac:OSX 优胜美地 10.10.5
- Eclispe:火星(4.5.0)
- 代码:7.2
- 设备:iPhone 6 Plus
下面是代码
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();
} }
我还对设备进行了以下更改
- 启用设置->高级->Web Inspector
- 启用开发人员-> UI 自动化
而且我还将 ios_webkit_debug_proxy 和 Running 命令安装到 ios_webkit_debug_proxy -d Your Device's UDID:27753 以连接设备。
编辑1
正如利亚姆所建议的,但我无法成功运行该命令。下面是我在运行执行时遇到的错误。
$ ./reset.sh --ios --real-safari * 确定平台 * 平台是 mac ---- 重置/初始化 Appium ---- 重置 NPM * 安装新的或更新的 NPM 模块(包括 devDeps) 重置一般 * 没有做,不是一个 git repo RESETTING IOS
警告:您似乎没有激活 iOS7/8 SDK
将 iOS 配置设置为 Appium 的版本 ---- FAILURE: reset.sh exited with status 1 ---- ---- 使用 --verbose 重试以查看错误 ----