RPA使用之JavaScript操作1
1. 在某些场景下,通过控件点击,选择操作比较繁琐,比如一些日期控件的选择。如果日期可以输入,我们可以直接用下列js语句来解决问题案例:
document.querySelector("#beginDate").value="2020-04-17";如果发现进行后续的操作以后,选择的时间又变成默认的时间,并没有生效,则运行下面的js手动触发:
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent( 'input', true, false );
fireOnThis.dispatchEvent(evObj); 其中fireOnThis表示需要手动触发的标签,如果标签中有readonly属性,先去掉再进行以上操作。
上例中document.querySelector("#beginDate")返回一个htmlElement对象,直接将这个element的值设为一个日期就好了。如果用RPA的普通操作,可能需要先点击一个button弹出日期控件,然后在日期控件中选择日期,时间和稳定性都不如这个操作。
document.querySelector是RPA在JS操作中用得比较多的操作,querySelector操作的参数是CSS selector, 各种css元素可能对应于不同的selector的表示方法。比如 .class, #id, div>p, div+p等,可以参考CSS selector链接学习。
2. 在某些场景下,页面可能需要频繁滚动,显示出元素后才可以点击,这这种情况下,直接用js触发点击会更方便:
document.querySelector("#btn").click()
3. 在一些场景下,需要将滚动条滚动到一个div的特定位置
document.querySelector("#divid").scrollTo(0, 100)
4. 在某些场景下,gettext无法获取元素的值,可以使用如下js来操作:
return document.querySelector("#divid").textContent
5.web页面点击文件上传,如果上传标签是input,还有一种更方便的方法(无需点击选择路径再上传文件):
(1)直接用网页的type命令,target填input标签的xpath,value传文件的详细路径;(2)如果步骤1失败,可以尝试在type命令之前使用executeScript运行document.querySelector("#目标input的id").style.opacity=1 这个js命令再type
6.当前studio的getCookie命令只能获取当前页面的cookie的某个值,在某些场景下,如果需要获取网页的所有cookies,可以使用如下js来操作:return document.cookie
Javascript获取元素的方法除了querySelector(css定位)之外,还有getElementById等,可以通过js学习链接系统学习。
- 点赞
- 收藏
- 关注作者
评论(0)