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

使用JavascriptExecutor测试按钮时遇“Unexpected keyword or identifier”错误求助

问题解决思路

1. 第一行代码的语法错误原因

你写的JavascriptExector js = (JavascriptExector) driver;是Java语言的Selenium语法,但当前使用的是JavaScript,两者语法规则完全不同:

  • JavaScript不支持静态类型声明(比如变量类型 变量名 = ...这种写法在JS里不合法)
  • 不需要对driver做强制类型转换
  • 类名拼写错误:正确的类名是JavascriptExecutor(你少写了一个字母u)

在JavaScript的Selenium环境中,driver实例本身就支持执行JS脚本,不需要单独创建JavascriptExecutor对象。

2. 导入语句的错误原因

import org.openqa.selenium.JavascriptExecutor;是Java的导入语法,JavaScript的模块导入规则完全不同:

  • 如果用Node.js的CommonJS规范,导入Selenium的写法是:
    const { Builder, By, until } = require('selenium-webdriver');
    
  • 如果用ES模块规范(需要在项目的package.json中设置"type": "module"),写法是:
    import { Builder, By, until } from 'selenium-webdriver';
    

而且JavaScript的Selenium不需要单独导入JavascriptExecutor,因为driver自带executeScript()方法。

正确示例代码

// CommonJS导入方式
const { Builder } = require('selenium-webdriver');

async function executeJs() {
  // 初始化浏览器驱动
  const driver = await new Builder().forBrowser('chrome').build();
  
  try {
    await driver.get('https://example.com');
    // 直接执行JavaScript脚本
    const pageTitle = await driver.executeScript('return document.title;');
    console.log('页面标题:', pageTitle);
  } finally {
    // 关闭浏览器
    await driver.quit();
  }
}

// 执行函数
executeJs();

内容的提问来源于stack exchange,提问作者Hadi Mazboudi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:27:02