You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:06:55