Reputation: 34793
I am new to Selenium. I generated my first java selenium test case and it has compiled successfully. But when I run that test I got the following 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>
Kindly tell me how can I fix this error.
This is the java file I want to run.
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());
}
}
I first started the selenium server through the command prompt and then execute the above java file through another command prompt.
Second Question: Can I do right click on a specified place on a webpage with selenium.
Upvotes: 9
Views: 69150
Reputation: 53
Chances are this problem is caused by an already-running instance of the Selenium server. The new instance needs to listen on the same port number, but can't, because the port is already in use.
Let's say your Selenium server is configured to start on port 4444. Determine if the port is in use using the 'netstat' command:
On Windows: netstat -an | find "4444"
Expect to see output like this:
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING
TCP [::]:4444 [::]:0 LISTENING
On Linux, use: netstat -anp | grep 4444
(No Linux box to hand, so can't show example output!)
If you see any output, you need to kill the process that's listening on the port that Selenium wants to use. On Windows, use netstat -anb
to find the process name (it'll be listed after the line specifying the port number). Kill it using the Task Manager. On Linux, the process PID and name will be listed by the command above - kill it using kill <PID>
.
Upvotes: 5
Reputation: 11
Always make sure, selenium.stop()
method has been called at the end of test steps.
Upvotes: 1
Reputation:
The setUp method basically invokes start method, so don't need to give selenium.start() in above code. I guess this is kind of selenium's bug. it stops testing before it get some response. but I've not found why yet.
Upvotes: 0
Reputation: 1589
I know this might sound silly but are you sure you have given selenium.start()
in your code? Beginners can make this mistake.
Upvotes: 2
Reputation: 4468
If you're using the last version of Selenium RC (after 1.0) you should change the following:
setUp("https://www.google.com/", "*chrome");
for
setUp("https://www.google.com/", "*firefox");
If this doesn't work, try creating a separate firefox profile and using that one:
http://seleniumhq.org/docs/05_selenium_rc.html#specifying-the-firefox-profile
Upvotes: 4