我正在使用Appium在iOS设备(iPhone 6Plus)上的safari浏览器上启动Google.com . 当我在模拟器上运行它并且能够在safari浏览器上打开Google.com时,此代码运行正常但是当相同的代码在设备上运行时,会遇到以下错误
A new session could not be created. (Original error: Error. Could not find button to launch Safari. Make sure you are using the latest version of SafariLauncher that appium is using) (WARNING: The server did not provide any stacktrace information).
我正在使用以下软件 -
-
Appium:1.4.13
-
Mac:OSX Yosemite 10.10.5
-
Eclispe:火星(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();
} }
我还对设备进行了以下更改
-
启用设置 - >高级 - > Web检查器
-
启用Developer-> UI Automation
我还将ios_webkit_debug_proxy和Running命令安装到ios_webkit_debug_proxy -d设备的UDID:27753以连接设备 .
EDIT1
正如利亚姆所建议但我无法成功运行该命令 . 运行执行时我得到的错误低于此值 .
$ ./reset.sh --ios --real-safari 确定平台平台是mac ----重置/初始化Appium ----重置NPM 安装新的或更新的NPM模块(包括devDeps)重置通用没有要做的,不是git repo RESETTING IOS
警告:您似乎没有激活iOS7 / 8 SDK
将iOS配置设置为Appium的版本---- FAILURE:reset.sh退出状态1 ----使用--verbose重试以查看错误----
2 回答
我遇到了这个问题 . 我解决它的方法是手动部署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"
.希望这可以帮助,
利亚姆
请删除该功能
并使用应用路径更新功能