Como manipular notificações nativas Android e iOS?



  • Oi, pessoal.
    Pesquisei, pesquisei e resolvi buscar socorro aqui. Estou há pouco tempo na automação mobile e aqui na empresa temos apps nativos de Android e iOS.

    Comecei a fazer o primeiro projeto com Ruby + Capybara + Appium, mas todos os apps ao abrirem possuem a notificação de localização e permissão de dados para que o usuário permita. A questão é que não consigo clicar em “Permitir” para que ele possa continuar o script dos testes.

    Já tentei clicar no botão mas o appium não encontra, alguém pode me ajudar?

    0_1539712462871_Captura de Tela 2018-10-16 às 14.53.36.png


  • MVP

    Olá, com appium tu tem uma capabilities que , para android somente, tem a opção

    AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS
    

    Com ela tu resolve isso pois ela dá permissão para tudo que o app precisa antes de iniciar os testes.
    Para iOS ferrou. Isso é um problema sem solução, pois a ferramenta nativa (XCTest) também não suporta.
    Para iOS tem que pedir para colocarem as permissões no inicio do app, para tu aceitar todas, ou ficar cuidando alerta e dar um accept.
    não sei com ruby, mas em java tem

    driver.switchTo().alert().accept();
    

    E esse carinha aceita isso.
    Ou se quiser ficar cuidando se o alerta aparece, também pode. Mas vai ser uma porcaria dar manutenção a isso e teu teste vai ficar instável (aka flaky).



  • @ramses-saccol-de-almeida Muito obrigado, Ramses!

    Como aqui é ruby, coloquei essa linha de código:

    autoGrantPermissions: “true”

    Para iOS ainda vou entrar nesse problema, muitíssimo obrigado!


  • MVP

    Sim, só ao rodar iOS não passa ela. Eu acho que não quebra nada, mas né…nunca usei com ruby e não sei o que pode acontecer…No demais, o que rolar de dúvidas, só avisar…