【问题标题】:How to initialze an appium android driver on version 4.0.0 with selenium 3.141.0如何使用 selenium 3.141.0 在 4.0.0 版本上初始化 appium android 驱动程序
【发布时间】:2020-02-23 11:52:15
【问题描述】:

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

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

OpenQA.Selenium.InvalidSelectorException: 'Locator Strategy 'css selector' is not supported for this session

理想情况下,我不想回到旧版本的 selenium,因为我已经有一组使用 3.14 的工作测试。这是我目前的测试,我找不到明确的文档告诉我如何在C# 中实现 appium 驱动程序。

  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

我需要将哪些参数传递给此构造函数才能使此设置正常工作?

【问题讨论】:

    标签: c# android selenium testing appium


    【解决方案1】:

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

    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);
    }
    

    【讨论】:

      【解决方案2】:

      我认为 URI 造成了问题.. 尝试使用类似以下 sn-p 的 URL ..

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

      【讨论】:

        【解决方案3】:

        谢谢你帮了我很多忙

        对于 UWP 用户:

        AppiumOptions options = new AppiumOptions();
                    options.PlatformName = "UWP";
                    options.AddAdditionalCapability("deviceName", "WindowsPC");
                    options.AddAdditionalCapability("app", AppId);
        session = new WindowsDriver<WindowsElement>(new 
                        Uri("http://127.0.0.1:4723"), options);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-05
          • 2016-04-26
          • 2013-11-29
          相关资源
          最近更新 更多