无法解析方法 'setFileDetector' in 'WebDriver' in Java

Cannot resolve method 'setFileDetector' in 'WebDriver' in Java

据此,https://www.selenium.dev/documentation/webdriver/remote_webdriver/

我正在尝试使用 bonigarcia 的 webdrivermanager 使用此选项设置我的远程 webdriver,我使用以下代码。

import org.openqa.selenium.remote.LocalFileDetector;

   //From a customzed method I get remote BrowserStack chrome instance.
   WebDriver driver= WebDriverFactory.getDriver();
   driver.setFileDetector(new LocalFileDetector());

但是我在 'WebDriver.请帮忙。

我想你应该使用 RemoteWebDriver 而不是 WebDriver

我认为您需要对其进行类型转换,您是否尝试将其类型转换为特定的 chromedriver?

((ChromeDriver) driver).setFileDetector(new LocalFileDetector());

您还需要添加:

<dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-exporter-jaeger</artifactId>
      <version>0.14.0</version>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-netty</artifactId>
      <version>1.34.1</version>
    </dependency>

在你的pom.xml

探索此类错误的最佳选择是检查 public API 文档,以确保您使用正确的界面。 RemoveWebDriver interface owns this method, WebDriver 不是。

所以解决方案是修改驱动程序的构造并确保返回 RemoteWebDriver 实例。

   // WebDriver driver = WebDriverFactory.getDriver();
   RemoteWebDriver driver = /* Use Selenium docs to construct the object */;

这段代码对我有用 运行 BrowserStack 中的测试。

WebElement uploadFile = driver.findElement(By.xpath("//input[@type='file']"));
((RemoteWebElement)uploadFile).setFileDetector(new LocalFileDetector());
        upload_file.sendKeys(System.getProperty("user.dir")+"/src/main/java/resources/common/<Name of your file>.csv");