使用 Appium 如何单击 "home" 按钮或在 ios 模拟器中启动主屏幕?
With Appium how to click the "home" button or launch the home screen in ios simulator?
我正在尝试使用 Appium 在 ios 模拟器中启动 "home" 屏幕,但找不到任何 api 来执行此操作。
任何建议都会有很大帮助。
ios.We 中存在限制,无法在 ios 中发送按键代码以按下主页按钮,由于此限制,我们无法在 android 中自动执行主页 button.But 我们可以使用 keycodes.In iOS 自动化来做到这一点,但我们不能那样做。
根据link:
https://github.com/appium/java-client/releases/tag/v5.0.0-BETA6
添加了一项增强功能,即:
[增强] iOS XCUIT 模式自动化:添加了 API 至 运行 后台应用程序。
也许你可以尝试使用 Java-Client v5.0.0-BETA6 并尝试这个 API
感谢大佬们的回复,主屏好像打不开,连java机器人键"command+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
通过右键单击停靠栏中的模拟器图标,然后从 "Hardware" 菜单(即菜单 5)中选择 "Home",可以成功地使模拟器成为焦点。
在测试您的应用期间,您可以运行您的应用在后台返回。
要执行此操作,您必须添加
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();
希望对您有用。
我正在尝试使用 Appium 在 ios 模拟器中启动 "home" 屏幕,但找不到任何 api 来执行此操作。
任何建议都会有很大帮助。
ios.We 中存在限制,无法在 ios 中发送按键代码以按下主页按钮,由于此限制,我们无法在 android 中自动执行主页 button.But 我们可以使用 keycodes.In iOS 自动化来做到这一点,但我们不能那样做。
根据link: https://github.com/appium/java-client/releases/tag/v5.0.0-BETA6
添加了一项增强功能,即: [增强] iOS XCUIT 模式自动化:添加了 API 至 运行 后台应用程序。
也许你可以尝试使用 Java-Client v5.0.0-BETA6 并尝试这个 API
感谢大佬们的回复,主屏好像打不开,连java机器人键"command+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
通过右键单击停靠栏中的模拟器图标,然后从 "Hardware" 菜单(即菜单 5)中选择 "Home",可以成功地使模拟器成为焦点。
在测试您的应用期间,您可以运行您的应用在后台返回。
要执行此操作,您必须添加
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();
希望对您有用。