Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Iniciar o Appium pelo C# usando emulador do iPhone

Encontrei muitas referencias para Android e foi muito bom. Mas precisaria entender como posso fazer a inicialização para um emulador do iPhone, para testar meu pp no Iphone. Fiz um aplicativo usando Xamarin onde cada projeto tem suas camadas e dividem as mesmas regras de negócio, mas queria testar isso com o appium no android e iOS usando c#.

2 respostas

Olá, esyudante. Tudo bem?

Entendi, você está buscando uma maneira de iniciar o Appium para um emulador do iPhone usando C#. Vou tentar te ajudar com isso.

Primeiramente, é importante mencionar que o Appium é uma ferramenta de teste de automação de aplicativos móveis que suporta tanto Android quanto iOS. No entanto, a automação do iOS com Appium é um pouco mais complexa devido às restrições da Apple.

Aqui está um exemplo básico de como você pode configurar o Appium para testar seu aplicativo no emulador do iPhone usando C#:

AppiumOptions options = new AppiumOptions();
options.AddAdditionalCapability(MobileCapabilityType.PlatformName, "iOS");
options.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "14.4"); // Insira a versão do iOS do seu emulador
options.AddAdditionalCapability(MobileCapabilityType.DeviceName, "iPhone 12"); // Insira o nome do seu emulador
options.AddAdditionalCapability(MobileCapabilityType.App, "/caminho/para/seu/app.ipa"); // Insira o caminho para o seu arquivo .ipa
options.AddAdditionalCapability(MobileCapabilityType.AutomationName, "XCUITest");

IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(new Uri("http://localhost:4723/wd/hub"), options);

Lembre-se, você precisa ter o Xcode e o Carthage instalados em seu Mac para que o Appium possa interagir com o iOS. Além disso, você precisa ter o WebDriverAgent, que é um servidor WebDriver para iOS que é usado para interface com o XCUITest da Apple.

Espero que isso te ajude a ter uma ideia de como iniciar o Appium para um emulador do iPhone usando C#. Por favor, note que este é um exemplo básico e sua configuração pode variar dependendo das especificidades do seu projeto.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

solução!

Obrigado Renan. Consegui fazer rodar aqui.

Vou deixar meu código aqui também se alguém tiver interesse ! Se vc tiver algum material de como rodar isso no pipiline do Azure e Appcenter vai ficar legal.

using System;
using NUnit.Framework;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Enums;
using OpenQA.Selenium.Appium.Service;
using OpenQA.Selenium.Appium.Service.Options;
using OpenQA.Selenium.Appium.iOS;

namespace TestProject1
{
    [TestFixture]
    public class Tests
    {
        private IOSDriver _driver;

        [OneTimeSetUp]
        public void Setup()
        {
            var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
            var driverOptions = new AppiumOptions() {
                AutomationName = AutomationName.iOSXcuiTest,
                PlatformName = "IOS",
                DeviceName = "iPhone 13 Pro",
                App = "br.com.meuapp.mobile",
            };
            driverOptions.AddAdditionalAppiumOption("udid", "34411BD0-B5DA-4839-B9D1-D967B063555B");// ID do dispositivo de teste
            
            _driver = new IOSDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
           
        }
        [OneTimeTearDown]
        public void TearDown()
        {
            _driver.Dispose();
        }
        [Test]
        public void Test1()
        {
            var el1 = _driver.FindElement(MobileBy.ClassName("XCUIElementTypeTextField"));
            el1.SendKeys("teste@teste.com");
            var el2 = _driver.FindElement(MobileBy.ClassName("XCUIElementTypeSecureTextField"));
            el2.SendKeys("4321");
            var el3 = _driver.FindElement(MobileBy.AccessibilityId("grafismos_meuapp"));
            el3.Click();
        }
        
    }
}