首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium类FirefoxDriver问题:方法FirefoxDriver(FirefoxOptions)未定义

Selenium类FirefoxDriver问题:方法FirefoxDriver(FirefoxOptions)未定义
EN

Stack Overflow用户
提问于 2021-02-02 04:53:42
回答 3查看 75关注 0票数 0

当我想要如下设置Firefox首选项时,我就会遇到这个问题:

代码语言:javascript
复制
public class MyTest{
    
    public WebDriver driver;
    public String baseUrl;
    
    @BeforeSuite
    public void beforeSuite() {
        driver = new FirefoxDriver(); 
        FirefoxOptions options = new FirefoxOptions();
        //FirefoxProfile profile = new FirefoxProfile();
        options.addPreference("browser.download.folderList", 1);
        options.addPreference("browser.download.dir", "C:\\Downloads");
        options.addPreference("browser.download.useDownloadDir", true);
        options.addPreference("browser.download.viewableInternally.enabledTypes", "");
        options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf;text/plain;application/text;text/xml;application/xml");
        options.addPreference("pdfjs.disabled", true);

        WebDriver driver = FirefoxDriver(options);
       //some other code

这个问题是针对FirefoxDriver(选项)的。它下划线为The method FirefoxDriver(FirefoxOptions) is undefined for the type MyTest

有人能对此表示支持吗?

EN

回答 3

Stack Overflow用户

发布于 2021-02-02 04:58:31

确保您具有以下导入:

代码语言:javascript
复制
import org.openqa.selenium.firefox.FirefoxOptions;

以及使用System.setProperty()行设置GeckoDriver的路径,如下所示:

代码语言:javascript
复制
System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");

另外,为了使FirefoxOptions生效,您需要删除该行:

代码语言:javascript
复制
driver = new FirefoxDriver();

最后更改代码行:

代码语言:javascript
复制
WebDriver driver = FirefoxDriver(options);

作为:

代码语言:javascript
复制
driver = FirefoxDriver(options);

从历史上看,此错误消息...

代码语言:javascript
复制
FirefoxDriver(FirefoxOptions) is undefined for the type MyTest

之前观察到的...was是由于:

在您使用的二进制文件版本之间,旧版本的Selenium.

  • Incompatibility与
  • 共存。

解决方案

确保:

通过集成开发环境将项目工作区升级到当前版本,并仅使用所需的依赖项重新构建项目。

  • 如果您的基本

  • 客户端版本太旧,则

  • 然后卸载它,并以非根用户身份安装最新的GA和发布版本的Web Client.

  • Execute您的Test

  • 始终在tearDown(){}方法中调用driver.quit(),以正常关闭和销毁WebDriver和Web客户端实例。
票数 0
EN

Stack Overflow用户

发布于 2021-02-02 05:12:30

你可以试试。

WebDriverManager.firefoxdriver().setup();

票数 0
EN

Stack Overflow用户

发布于 2021-02-02 05:39:14

先删除

代码语言:javascript
复制
    driver= new Firefoxdriver()

并将最后一行更改为

代码语言:javascript
复制
   WebDriver driver = new FirefoxDriver(options);

如果你不调用new,你引用的是一个名为FirefoxDriver的函数,

您正在创建FirefoxDriver类的对象,因此应使用new关键字

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65999979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档