Selenium自动化测试——修改时间控件的Text和Value

笔者在编写自动化脚本的过程中,由于时间控件不受Selenium的控制,因此需要通过注入JS来修改日期控件的value。有的程序可能是通过Text属性来取值,因此会将修改Text的方法一并写下。

一、修改时间控件的Value

1. 注入js的方法:

public void jsExe(WebDriver driver,String scroll) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		js.executeScript(scroll);
	}

scroll为js脚本

2.修改日期的value

js脚本:

var fa1 = document.getElementById(\"starttime\");
var ne1 = fa1.nextSibling;
var ls1 = ne1.lastElementChild;
ls1.setAttribute("value","" + realDate + "");

由于无法至今啊定为到value所在位置,因此需要先找到最近的元素,再通过其他方式定为到value。通过setAttribute方法,改变alue的值。

注入js:

String scroll = "var fa1 = document.getElementById(\"starttime\");" + 
					"var ne1 = fa1.nextSibling;" +
					"var ls1 = ne1.lastElementChild;"+
					"ls1.setAttribute(\"value\",\""+ realDate +"\");"
obj.jsExe(driver, scroll);

realDate为时间变量。

二、修改时间控件的Test

1. 由于时间控件的input元素不能之间键入值,因此需要将它的readonly属性移除。

String scroll = "var fa1 = document.getElementById(\"starttime\");" + 
					"var ne1 = fa1.nextSibling;" +
					"var ch1 = ne1.firstElementChild;" +
					"ch1.attributes.removeNamedItem(\"readonly\");"
obj.jsExe(driver, scroll);

2.接下来就是平常的操作,通过selenium定为元素,修改input中的Text即可。

你可能感兴趣的:(Selenium自动化测试)