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

如何用New Relic Synthetic点击iframe内按钮?遇参数错误求助

解决New Relic Synthetic点击iframe内按钮的报错问题

错误原因分析

你遇到的invalidArgumentError: invalid argument: 'id' can not be string错误,核心问题是代码中引号转义字符导致定位参数异常,同时固定时长的sleep也可能引发元素未加载完成的问题。

修正后的代码示例

.then(function(){ 
  // 切换到目标iframe,确认'tool_content'是iframe的id或name
  return $browser.switchTo().frame('tool_content');
 })
.then(function(){ 
  // 替换固定sleep为智能等待,直到目标元素出现
  return $browser.wait(function() {
    return $browser.findElements(By.id("moreIns")).then(function(elements) {
      return elements.length > 0;
    });
  }, 10000); // 等待10秒,可按需调整
})
.then(function () {
  log('clickElement "Course Home Manager"');
  // 传递纯字符串id,移除转义字符,指定超时时间
  return $browser.waitForAndFindElement(By.id("moreIns"), 30000); 
})
.then(function (el) { 
  return el.click(); 
})

关键调整点

  • 移除引号转义:把代码中的"替换为实际双引号",确保By.id接收的是纯id字符串(如"moreIns"而非带转义的"moreIns")。
  • 替换固定sleep为智能等待:避免依赖固定时长的sleep,改用$browser.wait()等待目标元素出现,适配不同页面加载速度。
  • 明确超时时间:若DefaultTimeout未定义,直接传入数字(如30000代表30秒),避免变量未初始化问题。
  • 验证iframe切换:确认tool_content是目标iframe的id或name,若不确定,可尝试用索引$browser.switchTo().frame(0)(第一个iframe)测试。

内容的提问来源于stack exchange,提问作者Supun Senanayake

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:45:48