JavaScript解决自动化测试中selenium不能操作的问题

  • 对只读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';在富文本框内输入信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,104评论 1 10
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,798评论 0 8
  • JavaScript 快速入门 浏览器浏览器对象操作 DOM插入 DOM删除 DOM 操作表单获取值设置值HTML...
    染微言阅读 1,684评论 0 5
  • 前言 归根结底,代码都是思想和概念的体现。没人能把一种程序设计语言的所有语法和关键字都记住,可以查阅参考书来解决。...
    朱细细阅读 2,978评论 4 14
  • 林璐对林橙露出了一个“友善”的笑容林橙就跟没看见一样径直走向了楼下,林璐脸色一白,顿时又改变了态度,眼眶里蓄着泪,...
    寐小九阅读 223评论 0 0