从 Eclipse 中使用自定义 Firefox 配置文件启动 Selenium

2023-12-01

我正在 Eclipse 中运行 Selenium 测试,但无法加载自定义 Firefox 配置文件。

大多数消息来源建议我需要像这样启动 Selenium 服务器:

java -jar selenium-server.jar -firefoxProfileTemplate </path/to/template/>

但是当从 Eclipse 中启动我的测试时,它不会使用它 - 如果 Selenium 服务器未运行,测试将运行。

该线程建议我可以在 DefaultSelenium 构造函数中设置配置文件:

Selenium RC - 禁用浏览器 cookie

但是 Selenium IDE(Firefox 插件)为我生成的代码不使用该构造函数:

package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class Example extends SeleneseTestCase {
    public void setUp() throws Exception {
        setUp("http://www.example.com/", "*firefox");
    }
    public void testExample() throws Exception {
        selenium.open("/");
        selenium.click("//body");
    }
}

我应该在哪里设置 DefaultSelenium 配置选项?或者我可以使用其他方法来加载自定义 Firefox 模板吗?

谢谢! 斯图


我制作了一个 SeleniumTestCase,它在每个测试类之前/之后启动/停止服务器,并在每个测试之前/之后启动/停止 Selenium 实例:

public class SeleniumTestCase {
    protected static Selenium selenium;
    protected static AppNavUtils appNavUtils;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        SeleniumServerControl.getInstance().startSeleniumServer();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        SeleniumServerControl.getInstance().stopSeleniumServer();
    }

    @Before
    public void setUp() throws Exception {
        // Replace "*chrome" with "*firefox" for Selenium > 1.0
        selenium = new DefaultSelenium("localhost", 5444, "*chrome", "http://localhost:8080/"); 
        selenium.start();
        appNavUtils = new AppNavUtils(selenium);
    }

    @After
    public void tearDown() throws Exception {
        selenium.stop();
    }  
}

SeleniumServerControl 启动和停止服务器:

public class SeleniumServerControl {
    private static final SeleniumServerControl instance = new SeleniumServerControl();

    public static SeleniumServerControl getInstance()
    {
        return instance;
    }

    private SeleniumServer server = null;

    protected SeleniumServerControl(){}

    public void startSeleniumServer() {
        if (server == null) {
            RemoteControlConfiguration rcc = new RemoteControlConfiguration();
            rcc.setPort(5444);
            //rcc.setFirefoxProfileTemplate(newFirefoxProfileTemplate)
            server = new SeleniumServer(rcc);
        }

        server.start();
    }

    public void stopSeleniumServer()
    {
        if (server != null) {
            server.stop();
            server = null;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Eclipse 中使用自定义 Firefox 配置文件启动 Selenium 的相关文章

随机推荐