如何通过 Selenium 将 Xcode 模拟器设置为以编程方式旋转为 iPhone/iPad 的横向

How to set Xcode simulator to programmatically rotate to landscape for iPhone/iPad through Selenium

提问人:Wes 提问时间:8/3/2018 最后编辑:d4RkWes 更新时间:8/15/2018 访问量:1165

问:

查看 Appium 日志,它说它处于横向模式,并且横向显示在所需的功能中,例如:

[debug] [XCUITest] Setting initial orientation to 'LANDSCAPE'

当前这样做是为了设置以下内容:

descap.setCapability("orientation", "LANDSCAPE");

这样做,我能够让应用程序以横向显示。但是如何让 XCode 模拟器设备横向显示呢?

使用 Java 和 Selenium,如何告诉 Appium/XCode 模拟器以横向模式显示设备?谢谢!

Java iOS Xcode Selenium Appium

评论


答:

1赞 undetected Selenium 8/3/2018 #1

若要在横向模式下显示设备,可以使用以下代码行:

descap.setCapability("--main-frame-resizes-are-orientation-changes", "landscape");

注意:确保 descapChromeOptions() 类的实例。

评论

2赞 Wes 8/3/2018
这是 XCode 模拟器,而不是 Chrome 浏览器
0赞 Bill Hileman 8/10/2018 #2

根据 Appium 中的屏幕方向,您只需要以下行:

driver.rotate(org.openqa.selenium.ScreenOrientation.LANDSCAPE);

评论

0赞 Wes 8/13/2018
试过这个。它只旋转应用程序,而不旋转设备。
0赞 Tm Goyani 8/13/2018 #3
[[UIDevice currentDevice] setValue:
    [NSNumber numberWithInteger: UIInterfaceOrientationPortrait]
        forKey:@"orientation"];

评论

0赞 Wes 8/14/2018
这会旋转设备而不是应用程序吗?如果是设备,如何使用硒来破解这个?我不是应用程序开发人员,只是一个测试人员。
0赞 Charles Nough 8/14/2018 #4

好吧,我只需使用以下命令来旋转应用程序:

driver.rotate(ScreenOrientation.LANDSCAPE);

或作为一项功能:

capability.setCapability("orientation", "LANDSCAPE");

这就是我在代码方面所做的一切。为了旋转实际设备,我做了以下操作:

Open Simulator App > Hardware > Rotate Device Automatically

只要选择了该选项,这应该会导致您的所有设备沿您旋转应用程序的任何方向旋转。它不会在启动或任何操作时自行重置,因此请确保不要取消选中它。

评论

0赞 Wes 8/14/2018
不想旋转应用程序。希望以编程方式旋转设备。
0赞 Charles Nough 8/16/2018
你有没有尝试过我提到的最后一步,因为这是你想要的。
0赞 Wes 8/17/2018
事实并非如此,我正在寻找一种程序化解决方案,而不是手动解决方案。
0赞 Suban Dhyako 8/15/2018 #5

Appium 是用于自动化应用程序的工具,而不是模拟器。在 appium 中,您只能更改应用程序方向。如果您的要求是这样的,您可以使用 Cmd-LeftCmd-Right 将模拟器的方向更改为横向或纵向模式。这将改变模拟器的方向。

评论

0赞 Wes 8/16/2018
我并不打算通过Appium本身来做到这一点,只是想使用编程解决方案来做到这一点。我不相信键盘快捷键会起作用。
0赞 Suban Dhyako 8/16/2018
如果您只需要在模拟器中以横向模式测试应用程序,则 Cmd+Left 是合适的解决方案。如果您在 Mac 上运行模拟器,则可以使用硬件>左旋转 |旋转右菜单。此外,“向左旋转”的键盘快捷键为 ⌘←,向右旋转的键盘快捷键为 ⌘→。
0赞 Wes 8/17/2018
同样,不要寻找键盘快捷键或手动调整设备方向。正如我已经多次说过的那样,我正在寻找一种程序化解决方案。