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

C# 如何使用selenium 3.141.0在4.0.0版上初始化appium android驱动程序,c#,android,selenium,testing,appium,C#,Android,Selenium,Testing,Appium,我找不到任何概述如何初始化appium android驱动程序的文档 我使用appium3.0.0.2和selenium3.11进行了此测试,但在尝试按类名查找元素时收到以下错误: OpenQA.Selenium.InvalidSelectorException:“此会话不支持定位器策略”“css选择器” 理想情况下,我不想回到旧版本的selenium,因为我已经有了一组使用3.14的工作测试。这是我目前的测试,我找不到清晰的文档来告诉我如何在C.中实现appium驱动程序 public voi

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

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

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

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

public void androidTest(){
机器人驱动;
DesiredCapabilities=新DesiredCapabilities();
cap.SetCapability(“deviceName”、“myName”);
cap.SetCapability(“平台名”、“安卓”);
cap.SetCapability(“automationName”、“UiAutomator2”);
cap.SetCapability(“appPackage”、“myPackage”);
上限设定能力(“appActivity”、“myActivity”);
Uri url=新的Uri(“http://127.0.0.1:4723/wd/hub");
驱动程序=新的AndroidDriver(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


我需要向这个构造函数传递哪些参数才能使这个设置正常工作?

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

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);
}
public void androidTest(){
机器人驱动;
AppiumOptions options=新的AppiumOptions();
options.PlatformName=“Android”;
选项。添加附加功能(“deviceName”、“MyDevice”);
选项。添加附加功能(“平台版本”、“平台V”);
选项。添加附加功能(“automationName”、“UiAutomator2”);
选项。添加附加功能(“appPackage”、“MyPackage”);
选项。添加附加功能(“appActivity”、“MyActivity”);
Uri url=新的Uri(“http://127.0.0.1:4723/wd/hub");
驱动程序=新的AndroidDriver(url,选项);
driver.Manage().Timeouts().ImplicitWait=TimeSpan.FromSeconds(10);
//一些示例选择器
driver.FindElementByClassName(“android.widget.EditText”).SendKeys(“test”);
driver.findelelement(MobileBy.AndroidUIAutomator(“new-UiSelector().className(\“android.widget.EditText\”).instance(1)”).SendKeys(用户名);
}

我认为URI造成了一个问题。。 尝试使用URL,如以下代码段所示

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

        driver = new AppiumDriver<MobileElement>(url,cap);
URL=新URL(“http://127.0.0.1:4723/wd/hub");
驱动程序=新应用程序驱动程序(url,cap);

谢谢你对我的帮助

对于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);
AppiumOptions选项=新的AppiumOptions();
options.PlatformName=“UWP”;
选项。添加附加功能(“deviceName”、“WindowsPC”);
选项。添加附加功能(“应用程序”,AppId);
会话=新建Windows驱动程序(新建
Uri(“http://127.0.0.1:4723",期权),;
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);