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

Selenium 4.10.0报错:Cannot cast from Chromecast to JavascriptExecutor

解决Selenium 4.10.0中Cannot cast from Chromecast to JavascriptExecutor错误

问题根源

你的代码里自定义了名为JavascriptExecutor的类,这和Selenium官方的org.openqa.selenium.JavascriptExecutor接口重名了。编译器会优先识别你自己的类,而非Selenium的接口,所以把ChromeDriver实例强转时就会触发类型转换错误。

解决方案

有两种简单的修复方式:

方案1:重命名自定义类

修改你的类名,避免和Selenium接口名冲突,比如改成JavascriptExecutorDemo:

package UI;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.ChromeDriverManager;

public class JavascriptExecutorDemo {

    public static void main(String[] args) {
        ChromeDriverManager.getInstance().setup();
        ChromeDriver driver = new ChromeDriver();
        driver.get("https://ebay.co.uk");
        
        // 正常转换为Selenium的JavascriptExecutor接口
        JavascriptExecutor jxect = (JavascriptExecutor) driver;
        // 示例:执行滚动到底部的JS代码
        // jxect.executeScript("window.scrollTo(0, document.body.scrollHeight);");
    }
}

方案2:使用全限定类名声明变量

如果不想修改类名,可以在声明变量时明确指定Selenium接口的全限定类名:

package UI;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.ChromeDriverManager;

public class JavascriptExecutor {

    public static void main(String[] args) {
        ChromeDriverManager.getInstance().setup();
        ChromeDriver driver = new ChromeDriver();
        driver.get("https://ebay.co.uk");
        
        // 用全限定类名指定Selenium的JavascriptExecutor接口
        org.openqa.selenium.JavascriptExecutor jxect = (org.openqa.selenium.JavascriptExecutor) driver;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:56