t.me/atinfo_chat Telegram группа по автоматизации тестирования

Переезд с Selenium на Selenide. Тест мобильного приложение

Теги: #<Tag:0x00007fd76e2dbef8> #<Tag:0x00007fd76e2dbd40> #<Tag:0x00007fd76e2dbac0> #<Tag:0x00007fd76e2db7c8>

Здравствуйте.
Написал свой первый тест для мобильного приложения на Selenium, но хочу перейти на Selenide.

Вот пример теста на Selenium


public class Login {

    WebDriver driver;

    @Test
    public void testSampleTest() throws MalformedURLException, InterruptedException {
        DesiredCapabilities capabs = new DesiredCapabilities();
        capabs.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
        capabs.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
        capabs.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 11 Pro Max (14.3)");
        capabs.setCapability(MobileCapabilityType.UDID, "D316BD0B-927E-4404-9F27-096B2C34C857");
        capabs.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + "/apps/audit.app");

            URL url = new URL("http://localhost:4723/wd/hub");
            driver = new AppiumDriver<MobileElement>(url, capabs);



        WebElement email=driver.findElement(By.name("E-mail"));
        email.sendKeys("test@test");
        WebElement heslo=driver.findElement(By.name("Pass"));
        heslo.sendKeys("4gf654hs");
        WebElement logIn=driver.findElement(By.name("LogIn"));
        logIn.click();
        Thread.sleep(20000);

        driver.quit();
    }
}

Вот как я переделал на Selenide

public class LoginApp {

    WebDriver driver;

    @Test
    public void testSampleTest() throws MalformedURLException, InterruptedException {
        DesiredCapabilities capabs = new DesiredCapabilities();
        capabs.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
        capabs.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
        capabs.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 11 Pro Max (14.3)");
        capabs.setCapability(MobileCapabilityType.UDID, "D316BD0B-927E-4404-9F27-096B2C34C857");
        capabs.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + "/apps/audit.app");


        URL url = new URL("http://localhost:4723/wd/hub");
        driver = new AppiumDriver<MobileElement>(url, capabs);

        $(By.name("E-mail")).setValue("test@test");
        $(By.name("Heslo")).setValue("4gf654hs");
        $(By.name("Login")).click();
        
    }
}

Возможно ли изменить что-то еще под Selenide ?
например

capabs.setCapability

Чтобы было покороче.
Спасибо !

Можно ещё

  1. использовать WebdriverProvider
  2. Заменить AppiumDriver на IOSDriver
  3. Добавить зависимость https://github.com/selenide/selenide-appium - тогда при падении тестов будут сохраняться xml, а не html файлы.
1 Симпатия

Подскажите пожалуйста
напортачил я что то

import com.codeborne.selenide.Driver;
import com.codeborne.selenide.WebDriverProvider;

import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;


import static com.codeborne.selenide.Selenide.$;


    public class LoginApp implements WebDriverProvider {
        @Test
        public IOSDriver createDriver(DesiredCapabilities capabilities)  throws MalformedURLException, InterruptedException {
        DesiredCapabilities capabs = new DesiredCapabilities();
        capabs.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
        capabs.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
        capabs.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 11 Pro Max (14.3)");
        capabs.setCapability(MobileCapabilityType.UDID, "D316BD0B-927E-4404-9F27-096B2C34C857");
        capabs.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + "/apps/app.app");


        return new IOSDriver(new URL("http://localhost:4723/wd/hub"), capabilities);

        $(By.name("E-mail")).setValue("test");
        $(By.name("pass")).setValue("12345");
        $(By.name("button se")).click();

    }
}

error: createDriver(DesiredCapabilities) in LoginApp cannot implement createDriver(DesiredCapabilities) in WebDriverProvider
        public IOSDriver createDriver(DesiredCapabilities capabilities)  throws MalformedURLException, InterruptedException {
  overridden method does not throw InterruptedException

А зачем вы тестовым классом отнаследовались , сделайте как тут


Я если честно пример на android не понимаю. У меня iOS.
под iOS не могу примеры найти