我正在尝试使用RemoteWebDriver在Safari浏览器上的iOS 12.3.1上自动化测试。我有一个真实的设备(iPad),并且使用的是Appium版本1.13.0。当我执行element.SendKeys("some text")
时,它不会触发MVC应用程序的字符长度验证。然后,我尝试使用Actions(OpenQA.Selenium.Interactions.Actions)并发现,如果可以将焦点设置在输入字段中,Action.SendKeys(...)
将触发字符长度验证。 (当我手动设置焦点时,iOS / iPad的键盘被激活并出现在屏幕上,并且光标开始在输入元素内部闪烁)。我想模拟相同的行为以使用操作发送密钥。
我尝试了很多选择,包括javascript .focus()
,但似乎没有任何工作可以将焦点集中在输入字段上。元素本身具有自动对焦属性,但仍然没有运气。有什么建议吗?
这是我初始化远程Web驱动程序的方式
case "SafariOniOS":
var iOSCaps = new DesiredCapabilities();
iOSCaps.SetCapability("platformName", "iOS");
iOSCaps.SetCapability("platformVersion", Settings.PlatformVersion);
iOSCaps.SetCapability("browserName", MobileBrowserType.Safari);
iOSCaps.SetCapability("automationName", "XCUITest");
iOSCaps.SetCapability("udid", Settings.DeviceId);
iOSCaps.SetCapability("deviceName", Settings.DeviceName);
iOSCaps.SetCapability("xcodeOrgId", Settings.AppleDeveloperTeamId);
iOSCaps.SetCapability("xcodeSigningId", "iPhone Developer");
iOSCaps.SetCapability("newCommandTimeout", 360);
var iOSCommandExecutor = new SomeCommandExecutorImpl(
new Uri(Settings.RemoteServerAddress),
Timeout.InfiniteTimeSpan)
{
CommandsToIgnore = SomeCommandExecutor.CommandsToIgnoreForMobileWeb
};
return new RemoteWebDriver(iOSCommandExecutor, iOSCaps);