Appium iOS Safari打开新选项卡,接受警报并在两个选项卡之间切换

所以我正在测试一个Web应用程序,我必须打开一个新的选项卡,切换到它,做一些输入,而不是切换回第一个选项卡,这不止一次。 我尝试以这种方式打开新标签:

((JavascriptExecutor) AppiumTestBase.getDriver()).executeScript("window.open('http://google.com', '_blank')"); 

这会导致出现以下警报:

iOS弹出窗口

但我无法通过Appium的自动化接受它。 我尝试过的事情:

  • 使用以下function:“safariAllowPopups”和“autoAcceptAlerts”
  • 在iOS sim中更改safari的相应设置
  • .switchTo()警报()接受()。; 我也在等Popup。
  • 在接受弹出窗口之前切换到本机上下文
  • 单击弹出的名称.findElement(By.name(“Allow”))。click();

我没有尝试过:

  • 根据弹出坐标点击屏幕。 我没有尝试这个,因为我不确定如何获得“允许”按钮的位置。

我的另一个问题是如何在两个标签之间切换? 我还没有尝试过任何东西,但研究表明我会尝试使用窗口上下文。

其他一些信息:

  • 目前正在使用iPhoneSE iOS 9.3模拟器进行测试,该解决方案应该适用于多种配置
  • Appium是最新版本
  • “AppiumTestBase”类的唯一目的是设置function并初始化AppiumDriver

请在我改变这个没有来自safari的弹出窗口后尝试这个上限

 desired_capabilities=automationName:XCUITest,browserName:safari,platformName:iOS,platformVersion:11.1,deviceName:iPhone 6,nativeWebTap:True,safariIngoreFraudWarning:True 

我尝试了Atthaboon Sanurt建议的解决方案,但它没有帮助。 没有警报,但新窗口/标签也没有打开。

这里报告了问题: https : //github.com/appium/appium/issues/6864

到目前为止,似乎没有解决方案,并计划修复它。