我正在尝试使用selenium-java:2.2.0
,并且我一直收到此错误:
org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:7055 refused
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.18-238.12.1.el5', java.version: '1.6.0_26'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:406)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:103)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:86)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:121)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:77)
at com.lexmark.cloudprint.BaseSeleneseTestCase.setUp(BaseSeleneseTestCase.groovy:21)
通过这个简单的设置:
class BaseSeleneseTestCase {
Selenium selenium
FirefoxDriver driver
@Rule public TestName name = new TestName();
@Before
public void setUp() {
driver = new FirefoxDriver();
def config = new ConfigSlurper(GrailsUtil.environment).parse(new File('grails-app/conf/Config.groovy').toURL())
selenium = new WebDriverBackedSelenium(driver, (String) config.grails.serverURL);
def GLOBAL_TIMEOUT_IN_MS = "10000"
selenium.setTimeout(GLOBAL_TIMEOUT_IN_MS)
}
在互联网上寻找,似乎很多人都有同样的问题,但我需要做一些工作。有没有人得到selenium2 webdriver在Linux上工作?如果是这样,怎么样?
答案 0 :(得分:1)
使用WebDriverBackedSelenium意味着您要求连接到远程控制的驱动程序。如果这是您想要的,我认为您必须部署远程控制的selenium服务器。
如果您只想直接在Firefox中执行测试(我的意思是,没有RemoteControl Selenium),您可以完全避免使用WebDriverBackedSelenium,如下所示:
FirefoxDriver driver;
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
[...]
driver.get(myTestUrl);
driver.findElement(By.xpath(myElementXpath)).click();
更好地理解您的问题以阅读其余测试将是有用的:如何调用测试方法,断言等。
UPDATE 可以使用基本WebDriver接口在实现之间切换(例如,更改浏览器)。
这样的事情:
在基础测试课程中:
public abstract class WebDriverBaseTest {
protected WebDriver driver;
@Before
public void setUp() throws Exception {
setDriverForTest();
}
protected abstract void setDriverForTest();
// Rest of tests here ...
}
为每个要测试的浏览器扩展此类:
public class FirefoxTest extends WebDriverBaseTest {
@Override
protected void setDriverForTest() {
driver = new FirefoxDriver();
}
}
public class HtmlUnitTest extends WebDriverBaseTest {
@Override
protected void setDriverForTest() {
HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
htmlUnitDriver.setJavascriptEnabled(true);
driver = htmlUnitDriver;
}
}
这是你需要的吗?
答案 1 :(得分:0)
请检查你的firefox的版本,也许新的firefox需要更高的selenium驱动程序。 目前我必须升级到firefox 29.0的selenium驱动程序2.39.0。