我想用Appium在ios模拟器中启动“home”屏幕,但没有找到任何api来做到这一点。
任何建议都会有很大帮助。
在ios中有一个限制。我们无法发送密钥代码按ios中的主页按钮,由于这个限制我们无法自动化主页按钮。但在android中我们可以使用密钥代码。在iOS自动化中我们不能这样做。
根据链接:https://github.com/appium/java-client/releases/tag/v5.0.0-BETA6
增加了一项增强功能:[增强] iOS XCUIT模式自动化:添加了在后台运行应用程序的API。
也许你可以尝试使用Java-Client v5.0.0-BETA6并试用这个API
谢谢大家的回应,似乎没有办法可以启动主屏幕,即使是java机器人键“命令+ shift + home”也行不通。
所以我不得不写一个苹果脚本,当被调用时会在模拟器中启动主屏幕。
它在这里
try
tell application "System Events"
if exists process "Simulator" then
tell process "Dock"
delay 2
set frontmost to true
activate
tell list 1
try
perform action "AXShowMenu" of UI element "Simulator"
delay 2
#click accssibilitytitle "Open" of menu item of menu1 -- up arrow
key code 126 -- up arrow
key code 126 -- up arrow
key code 126 -- up arrow
key code 126 -- up arrow
key code 126 -- up arrow
-- key code 125 -- down arrow
delay 2
key code 36 -- return key
on error errMsg
if errMsg contains "Simulator" then
log "Simulator is not present in the dock... To run the automation, add Simulator in the dock and try again!!!"
return
else
log errMsg
return
end if
end try
end tell
end tell
end if
end tell
on error errMsg
log errMsg
end try
tell application "System Events" to tell process "Simulator"
tell menu bar item 5 of menu bar 1
delay 3
click
delay 5
click menu item "Home" of menu 1
delay 3
end tell
end tell
通过右键单击Dock中的模拟器图标,然后从“硬件”菜单(即菜单5)中选择“主页”,可以成功地使模拟器处于焦点。
在测试您的应用程序期间,您可以在后台运行您的应用程序。
要做到这一点,你必须添加
protected IOSDriver iosDriver;
定义之后
@Test
@Description("Some Description")
public void testSearchZeroResultAndHomeBack(){
// run app in background for 5 seconds
iosDriver.runAppInBackground(5);
Assert.assertTrue(isTextDisplayedOnPage("0 ilan"));
}
//在后台运行应用程序5秒钟
iosDriver.runAppInBackground(5);
在您当前的appium驱动程序上,您需要使用以下代码。 driver_iOS是appium驱动程序的对象:
driver_iOS.ExecuteScript("client:client.deviceAction(\"Home\")");
如果你想要,你可以在你的工作完成后退出这个驱动程序,即driver_iOS.Quit();
我希望它对你有用。