Selenium - 无法启动Selenium会话:无法启动新的浏览器会话:启动浏览器时出错

时间:2009-09-12 11:49:46

标签: java selenium

我是Selenium的新手。我生成了我的第一个java selenium测试用例,它已成功编译。但是当我运行该测试时,我得到了以下RuntimeException

java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: Error while launching browser at com.thoughtworks.selenium.DefaultSelenium.start <DefaultSelenium.java:88>

请告诉我如何解决此错误。

这是我要运行的java文件。

import com.thoughtworks.selenium.*;

import java.util.regex.Pattern;

import junit.framework.*;

public class orkut extends SeleneseTestCase {

 public void setUp() throws Exception {

  setUp("https://www.google.com/", "*chrome");

 }
 public void testOrkut() throws Exception {

  selenium.setTimeout("10000");

  selenium.open("/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0&cd=IN&skipvpage=true&sendvemail=false");

  selenium.type("Email", "username");

  selenium.type("Passwd", "password");

  selenium.click("signIn");

  selenium.selectFrame("orkutFrame");

  selenium.click("link=Communities");

  selenium.waitForPageToLoad("10000");

 }

 public static Test suite() {

  return new TestSuite(orkut.class);

 }

 public void tearDown(){

  selenium.stop();

 }

 public static void main(String args[]) {

  junit.textui.TestRunner.run(suite());

 }

}

我首先通过命令提示符启动selenium服务器,然后通过另一个命令提示符执行上面的java文件。

第二个问题:我是否可以使用selenium右键单击网页上的指定位置。

5 个答案:

答案 0 :(得分:5)

这个问题可能是由已经运行的Selenium服务器实例引起的。新实例需要侦听相同的端口号,但不能,因为端口已在使用中。

假设您的Selenium服务器配置为在端口4444上启动。使用'netstat'命令确定端口是否正在使用中:

在Windows上:netstat -an | find "4444"

期望看到这样的输出:

  TCP    0.0.0.0:4444           0.0.0.0:0              LISTENING
  TCP    [::]:4444              [::]:0                 LISTENING

在Linux上,使用:netstat -anp | grep 4444

(没有Linux盒子,所以无法显示示例输出!)

如果您看到任何输出,则需要终止正在侦听Selenium要使用的端口的进程。在Windows上,使用netstat -anb查找进程名称(它将在指定端口号的行之后列出)。使用任务管理器杀死它。在Linux上,进程PID和名称将通过上面的命令列出 - 使用kill -9 <PID>将其删除。

答案 1 :(得分:4)

如果您使用的是最新版本的Selenium RC(1.0之后),您应该更改以下内容:

setUp("https://www.google.com/", "*chrome");

代表

setUp("https://www.google.com/", "*firefox");

如果这不起作用,请尝试创建一个单独的firefox配置文件并使用该配置文件:

http://seleniumhq.org/docs/05_selenium_rc.html#specifying-the-firefox-profile

答案 2 :(得分:2)

我知道这可能听起来很傻但您确定在代码中提供了selenium.start()吗?初学者可以犯这个错误。

答案 3 :(得分:1)

始终确保在测试步骤结束时调用selenium.stop()方法。

答案 4 :(得分:0)

setUp方法基本上调用start方法,因此不需要在上面的代码中给出selenium.start()。我猜这是一种硒的错误。它会在得到一些回应之前停止测试。但我还没找到原因。