为什么我在使用Selenium打开网站时会收到GridException异常?

4

我是selenium的新手。

以下是我的操作步骤: 在命令提示符上启动了一个独立的selenium服务器。

我运行了下面的代码,无论是webDriverWay()还是seleniumWay(),我都会得到如下错误。在这两种情况下,我都会收到

我的测试代码:

static String baseUrl= "http:\\google.com" ;

public static void main(String[] args) throws MalformedURLException {

    //webDriverWay();
    seleniumWay();

}

private static void webDriverWay() throws MalformedURLException {
    URL url = new URL("http://127.0.0.1:4444/wd/hub"); //Could be your remote VM where you to run your tests

    DesiredCapabilities capabilities;
    capabilities = DesiredCapabilities.firefox();

    //You can test multiple type of browser
    //capabilities = DesiredCapabilities.internetExplorer();
    WebDriver driver = new RemoteWebDriver(url, capabilities);

    //Open the web site
    driver.get(baseUrl);

    //Type Search Term
    (driver.findElement(By.name("q"))).sendKeys("Test Search Query");

    //Click submit button
    (driver.findElement(By.name("btnG"))).click();
}


static void seleniumWay()
{
    Selenium sel = new DefaultSelenium("localhost", 4444, "*firefox", baseUrl);
    CommandExecutor executor = new SeleneseCommandExecutor(sel);
    DesiredCapabilities dc = new DesiredCapabilities();
    WebDriver browser = new RemoteWebDriver(executor, dc);

    browser.get(baseUrl);
    WebElement input = browser.findElement(By.name("q"));
    input.sendKeys("Selenium");
}

控制台中的异常:

Exception in thread "main" org.openqa.selenium.WebDriverException: Could not start Selenium session: org.openqa.grid.common.exception.GridException: Error forwarding the new session Empty pool of VM for setup {browserName=*safari}
Command duration or timeout: 61 milliseconds
Build info: version: '2.26.0', revision: '18040', time: '2012-11-02 09:44:45'
System info: os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.7.0_09'
Driver info: driver.version: RemoteWebDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:531)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:215)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)

如果我漏掉了什么,请告诉我。


1
这个错误通常发生在你启动执行网格但没有任何节点与之关联时。你是否安装了Selenium服务器并将远程WebDriver注册到它上面了? - Brian
1个回答

2
这个指南包含了配置测试所需的所有信息。当我刚开始使用Selenium时,我遇到了非常相似的问题。请您参考此指南进行解决。

我也是!感谢您的答案和链接(尽管我正在使用Selenium/C#),+1。 - Brandon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接