Robotframework中Evaluate Javascript使用及元素文本获取问题求助
解决Robot Framework Browser库Evaluate Javascript和Get Text的问题
正确的Evaluate Javascript用法
你之前的核心问题是没搞懂新的Evaluate Javascript参数逻辑,还有旧代码里的语法疏漏(用querySelector选ID必须加#)。给你两种可行的写法:
写法1:直接执行完整JS语句(和旧Execute Javascript逻辑最接近)
${value} Evaluate Javascript document.querySelector("#score_Id").innerHTML
注意这里必须给ID加#,querySelector语法里#xxx才是选中ID为xxx的元素,你旧代码没加居然能运行大概率是旧库的兼容问题,但新库必须按标准语法写。
写法2:用定位器+元素变量(Browser库推荐写法)
${value} Evaluate Javascript #score_Id element.innerHTML
第一个参数是元素定位器(#score_Id是CSS定位规则,定位ID为score_Id的元素),第二个参数是JS表达式,这里的element就是定位到的元素对象,直接调用它的innerHTML属性就能拿到目标值。
你的错误尝试问题在哪
- 你写的
score_Id作为定位器,Browser库默认用CSS策略,会把它当成标签名去查找元素,自然找不到匹配项,所以返回空值。 - 后面的
document.innerHTML、document.getElementById.textContent都是语法错误:document对象没有innerHTML属性;getElementById必须传入参数(比如document.getElementById('score_Id')),而且你要操作的是找到的元素,不是document本身。
Get Text报错的原因
Node is not an HTMLElement说明你定位到的元素不是普通HTML元素(比如是SVG节点、文本节点或者注释节点),这类节点没有innerText属性,所以Get Text会报错。用上面的Evaluate Javascript拿innerHTML或者textContent就能绕过这个问题,比如:
${value} Evaluate Javascript #score_Id element.textContent
内容的提问来源于stack exchange,提问作者Scrat
相关产品推荐
相关产品推荐

