robotframework:运用JavaScript进行定位元素以及页面操作
在ui自动化时,有些特殊情况需要用到js操作,在进行js操作前要先进行js元素定位。
一.js元素定位
1.id定位
document.getElementById("id")
2.name定位
document.getElementsByName("name")
3.class定位
document.getElementsByClassName("class")
4.tag定位
document.getElementsByTagName("tag")
5.css定位
document.querySelectorAll("css selector")
6.xpath定位
document.evaluate("${element}",document).iterateNext()
${element}为xpath元素定位的内容。
二.验证js元素定位的正确性
fn+F12,选择console控制台。
在console控制台输入js元素定位,回车键后没有报错并且在下方展示元素定位。

三.js操作页面元素
进行js操作时,js操作前需要先写明方法表示是js操作。例如:robotframework使用的是execute javascript关键字,Java使用的是executeScript()方法。
1.js点击:加.click()
元素可能被定位到,但是无法通过click点击。是由于点击事件被父元素消耗。
document.evaluate("${element}",document).iterateNext().click()
2.js双击
${element}.click(); #点击事件
var clickEvent=document.createEvent('MouseEvents'); #创建clickEvent对象实例
clickEvent.initEvent('dblclick',true,true); #初始化事件,双击。事件类型,是否冒泡,是否阻止浏览器的默认行为
${element}.dispatchEvent(clickEvent) #触发事件
3.js输入
当有些控件要输入但是标签不是input时,点击不可直接输入,例如时间控件,属性中含有readonly。这时就需要用js先进行属性删除,然后再输入内容。
document.evaluate("${element}",document).iterateNext().removeAttribute('readonly') #去除readonly属性才可以输入
去除readonly属性后,如果input无法输入,可以使用fill text关键字或者键盘输入。
4.js设置值
当遇到时间控件不可以直接输入时,也可以尝试通过给元素设置值来实现输入。
document.evaluate('${element}',document).iterateNext().click();
var clickEvent=document.createEvent('HTMLEvents');
clickEvent.initEvent('change',true,true); #初始化事件,change事件
document.evaluate('${element}',document).iterateNext().dispatchEvent(clickEvent)
设置后的值需要验证是否能正常保存。
robotframework:运用JavaScript进行定位元素以及页面操作的更多相关文章
- JavaScript打开窗口与关闭页面操作大全
JavaScript新开窗口 onClick="javascript:window.location='http://www.sowsoy.com'" JavaScript新开一个 ...
- JavaScript HTML DOM元素节点常用操作接口
在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点的类 ...
- javascript获取iframe框架中页面document对象,获取子页面里面的内容,iframe获取父页面的元素,
javascript获取iframe框架中,加载的页面document对象 因为浏览器安全限制,对跨域访问的页面,其document对象无法读取.设置属性 function getDocument(i ...
- Javascript动态加载Html元素到页面Dom文档结构时执行顺序的不同
我们有时会通过ajax动态获取一段Html代码,并且将这段代码通过javascript放到页面的Dom结构中去. 而很多时候通过ajax动态获取的Html代码中也包含javascript代码,有一点需 ...
- selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素)
1.问题发生描述: 从一个页面进行点击等操作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下: 2.出现问题的原因: 窗口句柄还停留在上一个页面,对于当前新弹出的页 ...
- 每天一个JavaScript实例-操作元素定位元素
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 解决Selenium弹出新页面无法定位元素问题(Unable to locate element)
Python 2.7 IDE Pycharm 5.0.3 环境细节详见Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录 对于同一页面无法定位元素问题请见姊妹篇解 ...
- Appium Inspector定位Webview/H5页面元素
目录 操作步骤 Python操作该混合App代码 Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 翻墙 + 使用Chrome://ins ...
- APP端有原生态的控件,但嵌入了H5页面,怎么定位到H5页面的元素
appium 通常有很多种定位元素方法,例如xpath,driver.find_element_by_accessibility_id等,安卓sdk自带的uiautomatorviewer但是对于H5 ...
- 获取页面定位元素left top
1原生方法: 第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style ...
随机推荐
- FLink自定义Kafka Source,处理后转发给下一个kafka topic
一.依赖配置 pom文件:https://www.cnblogs.com/robots2/p/16048648.html kafka单机版安装:https://www.cnblogs.com/robo ...
- Codeforces 11D A Simple Task 题解 [ 蓝 ] [ 状压 dp ]
思路不难想,细节比较多. 思路 观察到 \(n \le 19\) ,首先想到状压 dp . 于是自然地定义 \(dp[j][i]\) 为:抵达点的状态为 \(i\) ,且此时在点 \(j\) 时,简单 ...
- Transformer-Squared:停止微调 LLMs
Transformer-Squared:停止微调 LLMs 自适应大语言模型背后的架构.Transformer-Squared 的数学与代码,以及奇异值分解 DALL-E 生成的图片 我们已经进入了这 ...
- nginx: [error] open() “/usr/local/var/run/nginx.pid” failed (2: No such file or directory)
- css的度量单位:px、em、rem、vh、vw、vmin、vmax、百分比
css的度量单位 px,像素数量,适用于比较固定的场景,比如边框宽度,分割线宽度 em em:是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位.一般浏览器字体大小默认为16px,则2em ...
- OpenCvSharp 打开rtsp视频并录制mp4文件
public class OpenCvSharpUtils { private VideoCapture Capture; private VideoWriter VideoWriter; priva ...
- JS经纬度坐标转换
var GPS = { PI : 3.14159265358979324, x_pi : 3.14159265358979324 * 3000.0 / 180.0, delta : function ...
- 算子 segment_contours_xld
算子segment_contours_xld 功能:将 XLD 轮廓分割为线段.圆弧或椭圆弧. 签名 segment_contours_xld(Contours : ContoursSplit : ...
- GPT-4.5 感觉有点拉胯,但其实是 OpenAI 迄今为止最大的一步赌注
Alberto Romero I. GPT-4.5 就是起跳前的助跑那一步 OpenAI 推出了 GPT-4.5(官方博客.系统卡片.演示视频),这是他们最新也是目前最大的一款 AI 模型.他们其实一 ...
- 如何解决ubuntu安装第三方deb出现的read unknown VMA问题(SUID sandbox配置问题)
前言 众所不周知,ubuntu的snap有些让人无语凝噎的问题,比方说如果你在Ubuntu 24.04 LTS通过它安装vscode,恭喜你,你无法在vscode中输入中文,缘由不明,又或者对于str ...