当出现“使用当前位置”权限弹出窗口时,Appium和Selenium无法连接

时间:2013-04-16 22:16:18

标签: ios selenium appium

我正在尝试使用Appium自动执行iOS测试。我有一个需要用户位置的应用,并在首次启动时请求位置权限。当我尝试将selenium连接到全新安装时,弹出窗口时它会失败。当我手动接受弹出窗口时,Seleium和Appium会连接并且测试能够继续。

这是服务器输出的副本:

error: Instruments did not launch successfully, failing session
error: Failed to start an Appium session, err was: Instruments did not launch successfully--please check your app paths or bundle IDs and try again
info: Responding to client with error: {"status":6,"value":{"message":"A session is either terminated or not started","origValue":"Instruments did not launch successfully--please check your app paths or bundle IDs and try again"},"sessionId":"faccc84b-fa8e-4137-ad77-f0c79d09b045"}
POST /wd/hub/session 500 13605ms - 270
debug: - - - "POST /wd/hub/session HTTP/1.1" 500 270 "-" "Ruby"
info: Clearing out appium devices

和硒产出的副本:

Selenium::WebDriver::Error::NoSuchDriverError:
       A session is either terminated or not started

我正在使用以下命令初始化Selenium:

@driver = Selenium::WebDriver.for(:remote, :desired_capabilities => capabilities, :url => server_url)

感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

有一个appium更新。只需添加功能即可始终接受这些警报,以避免应用程序中的任何位置出现故Java示例:

        capabilities.setCapability("autoAcceptAlerts", true);

答案 1 :(得分:1)

我认为这是仪器中的一个已知问题。当应用程序启动大约8秒内弹出位置服务时,UIAutomation由于某种原因无法处理弹出窗口。有关详细信息,请参阅this discussion on the Appium mailing list

到目前为止,唯一提出的解决方案是延迟定位服务检查,直到应用程序启动后约8秒。

答案 2 :(得分:1)

我有同样的问题。为了实现它,我向Appium添加了2个功能

    caps = {
        "locationServicesAuthorized" => true
        "bundleId" => "com.domain.myproject"
    }

答案 3 :(得分:0)

你也可以尝试:

启动您的应用,手动接受位置,然后将文件从路径复制到测试文件夹。

路径 - / Users / your_username / Library / Application Support / iPhone Simulator / 7.0 / Library / Caches / locationd / clients.plist

然后每次开始测试之前,将该文件复制回该位置,您将看不到位置弹出窗口。

BR。 阿莱克斯。