第一步:准备日期控件的界面代码,如下所示:
<html>
<head>
<title>日期控件测试</title>
</head>
<body>
<table border = '0'>
<tr>
<th>出发日期</th>
<td><input type='date' readonly='readonly' name='sendDate' value = '2018-01-01'/></td>
</tr>
<tr>
<th>返回日期</th>
<td><input type='date' readonly='readonly' name='backDate' value = '2018-01-01'/></td>
</tr>
</table>
</body>
</html>
第二步:使用xpath定位元素并编写JS脚本,脚步如下:
//声明一个变量,并把xpath语句存放在变量中
var xpath = "//input[@type='date']";
//使用xpath定位元素,并把定位结果取出来放到一个结果集中
var res = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null);
//从结果集中取第一个元素
var e1 = res.iterateNext();
//从结果集中取第二个元素
var e2 = res.iterateNext();
//去除元素e1的只读属性,并设值为"2018-12-01"
e1.removeAttribute("readonly");
e1.value = "2018-12-01";
//去除元素e2的只读属性,并设值为"2018-12-05"
e2.removeAttribute("readonly");
e2.value = "2018-12-05";
第三步:编写Java自动化测试脚本,脚步如下
//测试日期控件
@Test
public void testDate() {
//打开测试界面文件
driver.get("C:\\Users\\LENOVO\\Desktop\\2018-10-01\\demo1.html");
//线程休息2秒钟
sleep(2);
//将第二步中JS脚本拼接成一个字符串存放在String类型的js变量中
String js = "var xpath = \"//input[@type='date']\";" +
"var res = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null);" +
"var e1 = res.iterateNext();" +
"var e2 = res.iterateNext();" +
"e1.removeAttribute(\"readonly\");" +
"e1.value = \"2018-10-01\";" +
"e2.removeAttribute(\"readonly\");" +
"e2.value=\"2018-10-07\";";
//强制类型转换,把driver强制转换为可以执行js代码的driver
JavascriptExecutor jsDriver = (JavascriptExecutor)driver;
//使用executeScript()方法执行js代码
jsDriver.executeScript(js);
//线程休息2秒钟
sleep(2);
}