iOS 13野生动物园驱动程序无法创建野生动物园会话



tl;dr:safaridriver经常无法在真正的iOS 13设备上连接到mobileSafari。移动浏览器似乎在网络驱动程序连接关闭后处于暂停模式。要进行进一步的连接,唯一的解决方案是通过iOS应用程序切换器手动杀死mobileSafari。

编辑:该问题只能在iPad上重现。这个问题似乎在iPhone上不存在。


我正在尝试使用新的iOS 13网络驱动程序直接在iOS设备上运行硒测试。 它似乎按照 https://webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/中所述工作,但是当尝试运行第二个测试会话时,野生动物园驱动程序似乎无法在设备上连接移动野生动物园。 这似乎发生了,如果第二个会话在第一个会话之后没有立即启动 - mobileSafari 似乎已暂停,Safari 驱动程序无法处理这种情况。

使用邮递员,连接到正在运行的safaridriver -p 5500服务器。 用原始身体提出localhost:5500/session请求:

{
"capabilities": {
"alwaysMatch": {
"browserName": "Safari",
"platformName": "iOS"
}
}
}

多次重试后,这将导致:

{
"value": {
"error": "session not created",
"message": "Could not create a session: The session timed out while connecting to a Safari instance.",
"stacktrace": ""
}
}

无法解决此问题。唯一的解决方案是通过应用程序切换器手动杀死移动浏览器。

也许有人有一个想法,如何解决这个问题。将不胜感激,因为这是运行连续自动运行测试的真正障碍。

尝试在真正的iPad设备上启动会话时,我遇到了完全相同的问题。

man safaridriver在深入研究了safaridriver手册后,我发现功能中的设置safari:deviceType存在,所以我尝试了一下,它有效:

POST /session
{
"capabilities": {
"firstMatch": [
{
"safari:deviceType": "iPad", // <- add this
"platformName": "ios",
"browserName": "Safari"
}
]
}
}

其他脚注:

  • 我用过firstMatch,但alwaysMatch也应该工作。
  • safaridriver将评估不区分大小写的值
  • 使用 Safari13.1的 safari 驱动程序和Safari Technology Preview 107的 safari 驱动程序进行测试。适用于这两种情况,尽管 STP 的错误消息更有帮助。
  • 此外,您需要在iPad上打开"Safari>高级>网页检查器">(仅在iPad连接到MacOS机器后出现(才能启动会话。

最新更新