RPA使用之JavaScript操作1

举报
hwp 发表于 2022/05/08 14:52:53 2022/05/08
【摘要】 如有侵权请告知博主删除

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学习链接系统学习。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。