-
对只读input执行输入
-
背景
测试页面中,很多时间选择框、下拉选择框在html中用<input>标签来用于搜集用户信息。为了保证数据的规范性,选择框中的数据只能通过手动选择界面上的数据,这些input标签往往会加上readonly="readonly"属性。
通过JavaScript语言,可以remove标签的只读属性。
-
代码实践
l 页面元素:
l 程序代码:
JavascriptExecutor js = driver.GetJavascriptExecutor(); js.executeScript("var setDate=document.getElementById('startTime_startTime'); setDate.removeAttribute('readonly');") ;
l 解释:
1、JavascriptExecutor
js = driver.GetJavascriptExecutor();此JavascriptExecutor对象调用的是平台已封装好的DriverManager中的对象
2、setDate=document.getElementById('startTime_startTime');用来定位元素
3、setDate.removeAttribute('readonly');用来移除只读属性
-
富文本编辑器操作
-
背景
为方便用户编辑文本信息,很多测试页面中会内嵌富文本编辑器。富文本框的常见实现技术用到了Frame标签,并且在Frame里面实现了一个完整的HTML网页结构,所以使用普通的定位模式无法直接定位到富文本框对象。
使用JavaScript语句可以实现富文本框中的HTML格式内容输入。
-
代码实践
l 页面元素:
l 程序代码:
JavascriptExecutor js = driver.GetJavascriptExecutor(); js.executeScript("varsetMessage=document.getElementsByTagName('body')[0]; setMessage.innerHTML = 'hello';") ;
l 解释:
1、JavascriptExecutor
js = driver.GetJavascriptExecutor();此JavascriptExecutor对象调用的是平台已封装好的DriverManager中的对象
2、setMessage=document.getElementsByTagName('body')[0];用来定位元素
3、setMessage.innerHTML
= 'hello';在富文本框内输入信息
-
JavaScript获取控件对象的三个方法
3.1 document.getElementsByName()
根据控件名称获取控件对象,因为控件名称可以相同,返回的是一个对象数组。
注:可以用document. getElementsByName ('input')[0] 取得第一个控件。
3.2 document.getElementById()
根据控件ID获取控件对象,因为控件ID唯一,返回的是一个对象。
3.3 document.getElementsByTagName()
根据控件TAG获取这个控件对象,返回的是一个对象数组。
注:可以用document.getElementsByTagName('input')[0] 取得第一个控件。
l 程序代码:
JavascriptExecutor js = driver.GetJavascriptExecutor(); js.executeScript("varsetMessage=document.getElementsByTagName('body')[0]; setMessage.innerHTML = 'hello';") ;
l 解释:
1、JavascriptExecutor js = driver.GetJavascriptExecutor();此JavascriptExecutor对象调用的是平台已封装好的DriverManager中的对象
2、setMessage=document.getElementsByTagName('body')[0];用来定位元素
3、setMessage.innerHTML= 'hello';在富文本框内输入信息