将焦点设置为iOS / Safari中的输入字段

时间:2019-07-18 23:51:06

标签: c# ios selenium-webdriver safari appium

我正在尝试使用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);

0 个答案:

没有答案