无法在手机上使用 Selenium 设置 HTML 日期字段值



我需要使用Selenium设置HTML页面上日期字段的值。页面上的日期字段如下所示:

<input aria-invalid="false" id="datepicker-date-input" type="date" min="2000-01-01" max="2100-12-31" pattern="d{4}-d{2}-d{2}" value>

当我在PC上使用ChromeDriver运行Selenium脚本时:

WebElement myDate = getDriver().findElement(By.id("datepicker-date-input"));
myDate.sendKeys("2022-01-28");

它工作得很好,因为在Chrome上,我可以简单地在字段中键入日期。然而,当我使用移动WebDriver(无论是Android还是iOS(运行它时,它都会失败,因为这些移动驱动程序不允许我在字段中输入文本。

我试过使用这样的Javascript:

JavascriptExecutor js = (JavascriptExecutor)getDriver();
String script = "document.getElementById('datepicker-date-input').value = '2022-01-28'";
js.executeScript(script);

有了这个,我可以看到在字段中正确输入的值。但是,只要单击该组件,该值就会消失。如果我只是点击";提交";按钮

有什么建议可以用不同的方式设置日期或不丢失价值吗?

如果是您可能想要的jquery日期选择器:

jQuery('#datepicker-date-input').val('2022-01-28')

最新更新