Java使用Selenium时WebDriver无法解析setFileDetector方法问题求助
你遇到的编译报错是因为setFileDetector是org.openqa.selenium.remote.RemoteWebDriver类的特有方法,而你声明的driver变量类型是顶层接口WebDriver,该接口没有定义这个方法,所以编译器无法识别。
你可以通过以下两种方案解决问题:
- 方案1:将driver变量强转为RemoteWebDriver类型,建议搭配类型判断避免类型转换异常:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.LocalFileDetector; import org.openqa.selenium.remote.RemoteWebDriver; // 从自定义方法获取BrowserStack远程Chrome实例 WebDriver driver = WebDriverFactory.getDriver(); if (driver instanceof RemoteWebDriver) { ((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector()); }
- 方案2:直接将driver变量的声明类型改为RemoteWebDriver,适配你的远程使用场景:
import org.openqa.selenium.remote.LocalFileDetector; import org.openqa.selenium.remote.RemoteWebDriver; // 从自定义方法获取BrowserStack远程Chrome实例 RemoteWebDriver driver = WebDriverFactory.getDriver(); driver.setFileDetector(new LocalFileDetector());
修改后即可正常解决编译报错,完成本地文件检测器的配置,实现向远程浏览器节点上传本地文件的需求。
内容的提问来源于stack exchange,提问作者Sameera De Silva
相关产品推荐
相关产品推荐

