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

为何浏览器无法打开链接且代码报“The method getText() is undefined...”等错误?

问题分析与解决方案

让我们一步步解决你遇到的两个问题:

一、浏览器启动后链接未加载的问题

这个问题的核心是WebDriver实例的作用域错误。在你的driverCall()方法中,你重新声明了一个局部的WebDriver driver变量,这就导致类成员变量driver并没有被初始化——你启动的是局部变量对应的浏览器,但后续login()方法调用的是未初始化的类成员driver,自然无法加载链接。

修复代码:

修改driverCall()方法,去掉局部变量的声明,直接给类成员变量赋值:

public void driverCall() {
    System.setProperty("webdriver.chrome.driver", "./drivers/chromedriver.exe");
    // 去掉前面的WebDriver,直接给类成员变量赋值
    driver = new ChromeDriver();
    driver.manage().window().maximize();
}

二、motorvehicle变量相关的两个代码错误

你的addHireFromMotorVehicleOwn()方法里有两处明显的错误,我们逐一分析:

错误1:Type mismatch: cannot convert from void to String

driver.findElement(By.xpath("//mat-option[@id='Pickup']")).click()这个方法的返回值是void(没有返回值),你不能把它赋值给一个String类型的变量motorvehiclename1。

错误2:The method getText() is undefined for the type String

motorvehiclename1是String类型,而getText()是WebElement类的方法,String本身没有这个方法,所以会报错。

修复代码:

先获取对应的WebElement元素,执行点击操作后,再调用该元素的getText()方法获取文本:

public void addHireFromMotorVehicleOwn(String motorvehicle) {
    driver.findElement(By.xpath("//*[@id='add-vehicle']")).click();//click on add vehicle
    driver.findElement(By.xpath("(//*[@class='mat-radio-inner-circle'])[1]")).click();//click on own radio button
    //1st value
    driver.findElement(By.xpath("//mat-form-field[@id='vehicleCategoryOwn']")).click();//click on dropdown value
    
    // 先获取WebElement,再操作
    WebElement pickupOption = driver.findElement(By.xpath("//mat-option[@id='Pickup']"));
    pickupOption.click();//click on pickup from dropdown
    String motorvehiclename1 = pickupOption.getText();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:02:45