12306 para el control de la fecha, por ejemplo, localice el control e introduzca una fecha personalizado.
ideas:
1. Véase el elemento de hallarse cuadro de entrada de fecha atributo de sólo lectura;
2. Uso js atributo de sólo lectura eliminado, el control es editable;
3. Los datos de entrada de caja de Claro (si lo hay), introduzca una fecha personalizado.
código:
package com.ceres.demos;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class HandleDatePicker {
public static void main(String[] args) throws InterruptedException {
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
WebDriver driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get("https://www.12306.cn/index/");
Thread.sleep(2000);
/*
* 使用js定位日期控件,并去掉控件的readonly属性;
*/
String js = "document.getElementById('train_date').removeAttribute('readonly');";
((JavascriptExecutor) driver).executeScript(js);
/*
* 清空日期控件中的值,并输入目标日期值;
*/
WebElement datePicker = driver.findElement(By.id("train_date"));
datePicker.clear();
Thread.sleep(1000);
datePicker.sendKeys("2019-03-22");
}
}
efecto: