我正在 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(使用前将#替换为@)