Linux Blog

Facts About Selenium

Filed under: General Linux,Linux Software — TheLinuxBlog.com at 9:22 pm on Friday, March 28, 2008

Selenium is a chemical element. What you may not know is that Selenium is also a powerful testing tool for web applications. Selenium runs its tests directly in a browser, just like real users do. It is cross platform and the developers plan to have it for the iPhone but thats another story. Selenium can run in one of two modes Core and Remote Control (RC). The RC method has a way of using distributed computing much like the way Samba allows cross compiling over multiple cpu’s. There is an IDE for Selenium that can be used to easily learn Selenium.

Enough Facts About Selenium already!

What exactly can you do with Selenium?

Well, the answer is simple. Pretty much anything that you can do with a browser Selenium can do. Its primary purpose is for developers to use as a quality assurance tool. For QA purposes you can create a test cases, run them and verify that the end result is what you expected. You can create test cases in Java, Ruby, Python, Perl, PHP or .NET.

I had a little trouble getting the Selenium driver for PHP installed so here is the how to:

sudo su
pear channel-update pear.php.net
pear install Testing_Selenium-beta
pear install PHPUnit
exit

The above allowed me to communicate with the Selenium Remote Control that I downloaded with PHP. Here is an example from their website that I have modified so that it works:

  <?php
 
set_include_path(get_include_path() . PATH_SEPARATOR . './PEAR/');
require_once 'Testing/Selenium.php';
require_once 'PHPUnit/TestCase.php';
 
class GoogleTest
{
private $selenium;
 
public function setUp()
{
$this->selenium = new Testing_Selenium("*firefox", "http://www.google.com");
$this->selenium->start();
}
 
public function tearDown()
{
$this->selenium->stop();
}
 
public function testGoogle()
{
$this->selenium->open("/");
$this->selenium->type("q", "hello world");
$this->selenium->click("btnG");
$this->selenium->waitForPageToLoad(10000);
$this->testCase("/Google Search/", $this->selenium->getTitle());
echo "<hr>";
$this->testCase("/Yeahh Search/", $this->selenium->getTitle());
 
}
 
public function testCase($regEx, $string) {
 
preg_match($regEx, $string, $matches);
 
print_r($matches);
 
}
 
}
 
$google = new GoogleTest();
 
$google->setUp();
$google->testGoogle();
$google->tearDown();
?>

Before attempting to run this you must make sure that you downloaded Selenium RC and that it is running. Selenium runs on Java so make sure that Java is installed download selenium from here, unzip and run the following in the directory that it is extracted to:

cd selenium-remote-control-1.0-beta-1
cd selenium-server-1.0-beta-1
java -jar selenium-server.jar -interactive

Once this is running you can start scripting with PHP to get Selenium to do anything that you want. Once you are done make sure that you exit the Selenium server by running the “exit” at the prompt.

I’m sorry about the format of this post, its been a while since I have used Selenium and I’m quite excited about it. If you have any questions about Selenium post them here and I will try to answer them for you.





Random Man Pages:
groff_trace
getresgid
less
pselect

4 Comments »

Comment by George

December 17, 2008 @ 7:59 pm

i have been googling around, and haven’t found a solution yet, but the whole idea behind extending from TestCase.php is to have setUp, tearDown, and test function to run automatically. Don’t you agree? Please email me at wizphp at gmail.com if you think otherwise.

-George

Comment by Rahul

February 10, 2009 @ 1:53 am

Hi,

I am a newbie to selenium and have couple of questions.

– what are the approach to test flash object using selenium

– How to save the image locally from the src attribute.

Thanks in Advance

Comment by Maria Tu

August 1, 2011 @ 3:59 pm

Look, senuemenun soesn’t work for Flash. is meant for html and jscript (incl jquery) ONLY

Comment by TheLinuxBlog.com

August 2, 2011 @ 7:50 am

@Maria Tu – You’re right!

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>