如何使用 selenium 3.141.0 在 4.0.0 版上初始化 appium android 驱动程序
How to initialze an appium android driver on version 4.0.0 with selenium 3.141.0
我找不到任何概述如何初始化 appium android 驱动程序的文档。
我用 appium 3.0.0.2
和 selenium 3.11
进行了一些测试,但在尝试按 class 名称查找元素时收到以下错误:
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:
cannot convert from 'System.Uri'
to 'OpenQA.Selenium.Remote.ICommandExecutor'
参数 2:
cannot convert from 'OpenQA.Selenium.Remote.DesiredCapabilities'
to '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);
}
我认为 URI 造成了问题..
尝试像下面的片段一样使用 URL..
URL url = new URL("http://127.0.0.1:4723/wd/hub");
driver = new AppiumDriver<MobileElement>(url,cap);
谢谢h brooker你帮了我很多
对于 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);
我找不到任何概述如何初始化 appium android 驱动程序的文档。
我用 appium 3.0.0.2
和 selenium 3.11
进行了一些测试,但在尝试按 class 名称查找元素时收到以下错误:
OpenQA.Selenium.InvalidSelectorException: 'Locator Strategy 'css selector' is not supported for this session
理想情况下,我不想回到旧版本的 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");
}
我收到以下两条错误消息
参数 1:
cannot convert from
'System.Uri'
to'OpenQA.Selenium.Remote.ICommandExecutor'
参数 2:
cannot convert from
'OpenQA.Selenium.Remote.DesiredCapabilities'
to'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);
}
我认为 URI 造成了问题.. 尝试像下面的片段一样使用 URL..
URL url = new URL("http://127.0.0.1:4723/wd/hub");
driver = new AppiumDriver<MobileElement>(url,cap);
谢谢h brooker你帮了我很多
对于 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);