如何使用 selenium 3.141.0 在 4.0.0 版上初始化 appium android 驱动程序

h b*_*ker 0 c# testing selenium android appium

我找不到任何概述如何初始化 appium android 驱动程序的文档。

我在 appium3.0.0.2和 selenium 上进行了一些测试,3.11但在尝试按类名查找元素时收到以下错误:

OpenQA.Selenium.InvalidSelectorException: 此会话不支持“定位器策略”“css 选择器”

理想情况下,我不想回到旧版本的 selenium,因为我已经有一组使用3.14. 这是我目前的测试,我找不到明确的文档告诉我如何在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");
   }
Run Code Online (Sandbox Code Playgroud)

我收到以下两条错误消息

论点1:

不能转换'System.Uri''OpenQA.Selenium.Remote.ICommandExecutor'

论点2:

无法转换'OpenQA.Selenium.Remote.DesiredCapabilities''OpenQA.Selenium.DriverOptions' ArenaTests

我需要向这个构造函数传递什么参数才能使这个设置工作?

h b*_*ker 8

我解决了这个问题。如果有人遇到这种情况,以下初始化对我有用。

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);
}
Run Code Online (Sandbox Code Playgroud)