找不到启动Safari的按钮。确保您使用的是appium正在使用的最新版SafariLauncher

时间:2016-02-01 15:29:13

标签: safari automation ios9 appium appium-ios

我正在使用Appium在iOS设备(iPhone 6Plus)的safari浏览器上启动Google.com。 当我在模拟器上运行它并且能够在safari浏览器上打开Goog​​le.com时,此代码运行正常但是当相同的代码在设备上运行时,会遇到以下错误

无法创建新会话。 (原始错误:错误。无法找到启动Safari的按钮。请确保您使用的是appium正在使用的最新版SafariLauncher)(警告: 服务器未提供任何堆栈跟踪信息。)

我正在使用以下软件 -

  • Appium:1.4.13
  • Mac:OSX Yosemite 10.10.5
  • Eclispe:Mars(4.5.0)
  • Xcode: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();  
 } }

我还在下面对设备进行了更改

  • 启用设置 - >高级 - >网络检查器
  • 启用了Developer-> UI Automation

我还安装了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重试以查看错误----

2 个答案:

答案 0 :(得分:1)

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

  • git clone https://github.com/budhash/SafariLauncher
  • 然后在xcode中打开它并对其进行代码签名。
  • 然后将其部署到设备上。
  • 在SafariLauncher项目中运行build.sh
  • 然后将SafariLauncher.zip移动到appium / build / SafariLauncher,无论您的计算机是什么。
  • 然后运行./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);