如何在时间类型元素中发送键“时间”?

时间:2019-04-10 13:28:50

标签: selenium

我需要以“时间”类型的元素(“上午10:00”)传递时间格式的数据。 我正在使用以下代码:

private class DeleteAsyncTask(private val taskDao: TaskDao, private val service: Service) :
        AsyncTask<Task, Void, Void>() {
        override fun doInBackground(vararg tasks: Task?): Void? {
            for (task in tasks) {
                task?.apply {
                    service.deleteTask(this.task).execute()
                    taskDao.deleteTask(task)
                }
            }
            return null
        }
    }

这不起作用。输入此类数据的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

使用以下代码:

  

将其用于文本框/文本区域控制

SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a");
Date date = new Date();
txttime.sendkeys(date);

答案 1 :(得分:0)

对于HTML输入类型datetime-local,用硒处理它并不理想。它不是最常用的日期时间选择器,在Firefox或Safari浏览器中不受支持。

对于chrome,日期时间格式显示在浏览器的计算机中设置的格式。

如果您没有进行任何更改,我想您会得到 guru99 教程中显示的格式。

如果是这种情况,那么您就错过了他们也在该处提供了解决方案。 输入日期部分后,您需要按Tab键输入时间部分。您指定的代码中缺少哪个。

尝试一下:

首先,输入日期

WebElement dateBox = driver.findElement(By.xpath("//form//input[@name='bdaytime']"));
dateBox.sendKeys("09252013");

第二,按标签

dateBox.sendKeys(Keys.TAB);

最后输入时间

dateBox.sendKeys("0245PM");

注意: 如果您的计算机使用不同的DateTime格式,则可能无法正常工作。您必须检查日期时间senKeys的哪一部分可以实际输入,然后拆分该部分,然后使用Keys.TAB按下tab。然后输入下一部分直到完成。