0

我正在使用 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 重试以查看错误 ----

4

2 回答 2

1

我遇到了这个问题。我的解决方法是手动部署 SafariLauncher。

  • git clone https://github.com/budhash/SafariLauncher.
  • 然后在 xcode 中打开它并对其进行代码签名。
  • 然后将其部署到设备。
  • build.sh在 SafariLauncher 项目中运行。
  • 然后将 SafariLauncher.zip 移动到 appium/build/SafariLauncher 中,无论它在您的机器上的哪个位置。
  • 然后运行./reset.sh --ios --real-safari

很确定这不是预期的方法,但这是我所做的,我可以验证它是否有效。

此外,正如 econoMichael 所说,使用功能"browserName", "safari"而不是"app", "safariLauncher".

希望这可以帮助,

利亚姆

于 2016-02-01T22:08:32.337 回答
0

请删除该功能

capabilities.setCapability(CapabilityType.BROWSER_NAME, "safari");  

并使用应用程序路径更新功能

capabilities.setCapability("app", Your Safari launcher app path); 
于 2016-04-07T01:54:10.510 回答