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即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章