Selenium 2 webdriver - 与http:// localhost:7055的连接被拒绝

时间:2011-07-27 20:38:03

标签: linux selenium selenium-rc webdriver selenium-webdriver

我正在尝试使用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上工作?如果是这样,怎么样?

2 个答案:

答案 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。