Как инициализировать драйвер Android Appium на версии 4.0.0 с селеном 3.141.0 - PullRequest
0 голосов
/ 28 октября 2019

Я не могу найти какую-либо документацию с описанием инициализации драйвера Android Appium.

Этот тест несколько работал с appium 3.0.0.2 и селеном 3.11, но затем я получил следующую ошибку при попытке найти элемент по имени класса:

OpenQA.Selenium.InvalidSelectorException: 'Стратегия локатора' css selector 'не поддерживается для этого сеанса

В идеале я не хочу возвращаться к более старой версии селена, поскольку у меня уже есть набор рабочих тестов с использованием3.14. Это мой тест на данный момент, и я не могу найти четкую документацию, рассказывающую, как реализовать драйвер appium в C#.

  public void androidTest(){
      AndroidDriver<AndroidElement> driver;
      DesiredCapabilities cap = new DesiredCapabilities();
      cap.SetCapability("deviceName", "myName");
      cap.SetCapability("platformName", "Android");
      cap.SetCapability("automationName", "UiAutomator2");
      cap.SetCapability("appPackage", "myPackage");
      cap.SetCapability("appActivity", "myActivity");

      Uri url = new Uri("http://127.0.0.1:4723/wd/hub");

      driver = new AndroidDriver<IWebElement>(url, cap);

      driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

      driver.FindElementByName("android.widget.EditText").SendKeys("testString");
   }

Я получаю следующие два сообщения об ошибке

Аргумент1:

не может преобразовать 'System.Uri' в 'OpenQA.Selenium.Remote.ICommandExecutor'

Аргумент 2:

не может преобразовать 'OpenQA.Selenium.Remote.DesiredCapabilities' в 'OpenQA.Selenium.DriverOptions' ArenaTests

Какие аргументы мне нужно передать в этот конструктор, чтобы эта настройка работала?

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Я решил это. Если кто-то сталкивается с этим, у меня работает следующая инициализация.

public void androidTest(){
    AndroidDriver<AndroidElement> driver;
    AppiumOptions options = new AppiumOptions();
    options.PlatformName = "Android";
    options.AddAdditionalCapability("deviceName", "MyDevice");
    options.AddAdditionalCapability("platformVersion", "PlatformV");
    options.AddAdditionalCapability("automationName", "UiAutomator2");
    options.AddAdditionalCapability("appPackage", "MyPackage");
    options.AddAdditionalCapability("appActivity", "MyActivity");

    Uri url = new Uri("http://127.0.0.1:4723/wd/hub");

    driver = new AndroidDriver<AndroidElement>(url, options);
    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

    // Some example selectors
    driver.FindElementByClassName("android.widget.EditText").SendKeys("test");
    driver.FindElement(MobileBy.AndroidUIAutomator("new UiSelector().className(\"android.widget.EditText\").instance(1)")).SendKeys(Username);
}
0 голосов
/ 29 октября 2019

Я думаю, что URI создает проблему .. Попробуйте использовать URL, как в следующем фрагменте ..

        URL url = new URL("http://127.0.0.1:4723/wd/hub");

        driver = new AppiumDriver<MobileElement>(url,cap);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...