我正在Eclipse中运行Selenium测试,但我无法加载自定义Firefox配置文件。
大多数消息来源建议我需要像这样启动Selenium Server:
java -jar selenium-server.jar -firefoxProfileTemplate </path/to/template/>
但是当从Eclipse中启动我的测试时它没有使用它 - 如果Selenium Server没有运行,测试将会运行。
此主题建议我可以在DefaultSelenium构造函数中设置配置文件:
Selenium RC - disabling browser 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模板?
谢谢! 斯图
答案 0 :(得分:2)
我创建了一个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;
}
}
}
答案 1 :(得分:1)
您上面的代码版本假定您正在端口4444上针对localhost运行测试,这就是为什么它在设置中有2个参数。
要设置eclipse以运行它,您需要更新运行配置。
下Run > Run Configurations
查看其中包含selenium的项目并添加上面的配置,以便在运行时它将启动并运行。
我个人只是在开始工作时启动服务器,运行批处理文件并在当天结束时将其终止。