Get Ubuntu Get Ubuntu

Download Ubuntu now for free, request a free CD or buy it on DVD or CD

Get Support Get Support

Free documentation and community support, or buy professional support

Get Involved Get Involved

Share technical know-how with other users, or help to promote Ubuntu

Get Developing Get Developing

Share your development expertise and help shape the future of Ubuntu

User login

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
13 + 4 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Navigation

Who's new

  • xiaqinghua1989
  • pertapacilik
  • saifulfaizan
  • mayonks
  • naiimullah

Who's online

There are currently 0 users and 3 guests online.

Subscribe to Ubuntu Malaysia by e-mail

Delivered by FeedBurner

Search

Vid Ayer: selenium remote control python client

bizkut's picture


Selenium is quite a famous testing tool and has a lot of documentation (so I
wont bother to repeat stuff from there). I'll just focus on the bits where I
feel the documentation could improve.

STEP#0.After downloading selenium remotecontrol
change to the directory. {to install selenium on you local machine, download selenium from here.}

~$ cd selenium-remote-control-1.0.3/
~/selenium-remote-control-1.0.3/selenium-server-1.0.3$ sudo java -jar
selenium-server.jar
09:03:05.618 INFO - Java: Sun Microsystems Inc. 1.6.0_0-b11
09:03:05.638 INFO - OS: Linux 2.6.24-28-generic i386
09:03:05.722 INFO - v2.0 [a2], with Core v2.0 [a2]
09:03:06.304 INFO - RemoteWebDriver instances should connect to:
http://192.168.1.5:4444/wd/hub
09:03:06.307 INFO - Version Jetty/5.1.x
09:03:06.311 INFO - Started
HttpContext[/selenium-server/driver,/selenium-server/driver]
09:03:06.324 INFO - Started
HttpContext[/selenium-server,/selenium-server]
09:03:06.324 INFO - Started HttpContext[/,/]
09:03:06.381 INFO - Started
org.openqa.jetty.jetty.servlet.ServletHandler@12d15a9
09:03:06.382 INFO - Started HttpContext[/wd,/wd]
09:03:06.399 INFO - Started SocketListener on 0.0.0.0:4444
09:03:06.400 INFO - Started
org.openqa.jetty.jetty.Server@228a02

I wanted to run the python script from the console and each time it would
stop here and I'd be waiting and nothing would happen.....How do I run the
script without a command prompt. So then, I'd interrupt it with 'ctrl C' to get
a  "09:03:17.439 INFO - Shutting down...12:39:08.573 INFO - Stopping
Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=4444]

That "shutting down" message was odd -- how would you run a process if it
was shutting down? What the logs above dont say is "The selenium server must be
running so keep that process open. Open ANOTHER terminal window and run your
python script there". The documentation didnt explicitly mention that localhost
must keep the server running in the background-- Its one of the most basic
client-server concepts but when you are running stuff on localhost, your client
and server are one and the same. Being explicit with this trivia in the
documentation would have helped me not waste hundreds of hours searching the
selenium website and reading irrelevant blogs which google threw up, irc,
emails, etc... So, in TerminalOne,

:~/selenium-remote-control-1.0.3/selenium-server-1.0.3$ sudo java -jar
selenium-server.jar
09:03:05.618 INFO - Java: Sun Microsystems Inc. 1.6.0_0-b11
09:03:05.638 INFO - OS: Linux 2.6.24-28-generic i386
09:03:05.722 INFO - v2.0 [a2], with Core v2.0 [a2]
09:03:06.304 INFO - RemoteWebDriver instances should connect to:
http://192.168.1.5:4444/wd/hub
09:03:06.307 INFO - Version Jetty/5.1.x
09:03:06.311 INFO - Started
HttpContext[/selenium-server/driver,/selenium-server/driver]
09:03:06.324 INFO - Started
HttpContext[/selenium-server,/selenium-server]
09:03:06.324 INFO - Started HttpContext[/,/]
09:03:06.381 INFO - Started
org.openqa.jetty.jetty.servlet.ServletHandler@12d15a9
09:03:06.382 INFO - Started HttpContext[/wd,/wd]
09:03:06.399 INFO - Started SocketListener on 0.0.0.0:4444
09:03:06.400 INFO - Started org.openqa.jetty.jetty.Server@228a02
09:03:17.439 INFO - Shutting down...
mom@drga:~/selenium-remote-control-1.0.3/selenium-server-1.0.3$ sudo java -jar
selenium-server.jar
09:03:36.248 INFO - Java: Sun Microsystems Inc. 1.6.0_0-b11
09:03:36.252 INFO - OS: Linux 2.6.24-28-generic i386
09:03:36.270 INFO - v2.0 [a2], with Core v2.0 [a2]
09:03:36.486 INFO - RemoteWebDriver instances should connect to:
http://192.168.1.5:4444/wd/hub
09:03:36.489 INFO - Version Jetty/5.1.x
09:03:36.491 INFO - Started
HttpContext[/selenium-server/driver,/selenium-server/driver]
09:03:36.493 INFO - Started
HttpContext[/selenium-server,/selenium-server]
09:03:36.493 INFO - Started HttpContext[/,/]
09:03:36.523 INFO - Started
org.openqa.jetty.jetty.servlet.ServletHandler@12d15a9
09:03:36.523 INFO - Started HttpContext[/wd,/wd]
09:03:36.533 INFO - Started SocketListener on 0.0.0.0:4444
09:03:36.533 INFO - Started org.openqa.jetty.jetty.Server@228a02
09:04:30.236 INFO - Checking Resource aliases
09:04:30.260 INFO - Command request: getNewBrowserSession[*firefox,
http://localhost:4444, ] on session null
09:04:30.283 INFO - creating new remote session
09:04:30.614 INFO - Allocated session 7cba6a7dadb243618c046ee7fb6c6bc9 for
http://localhost:4444, launching...
09:04:30.778 INFO - Preparing Firefox profile...
09:04:34.676 INFO - Launching Firefox...
09:04:38.697 INFO - Got result: OK,7cba6a7dadb243618c046ee7fb6c6bc9 on session
7cba6a7dadb243618c046ee7fb6c6bc9
09:04:38.715 INFO - Command request:
open[/selenium-server/tests/html/test_click_page1.html, ] on session
7cba6a7dadb243618c046ee7fb6c6bc9
09:04:38.854 INFO - Got result: XHR ERROR: URL =
http://localhost:4444/selenium-server/tests/html/test_click_page1.html
Response_Code = 404 Error_Message = Not+found on session
7cba6a7dadb243618c046ee7fb6c6bc9
09:04:38.863 INFO - Command request: testComplete[, ] on session
7cba6a7dadb243618c046ee7fb6c6bc9
09:04:38.863 INFO - Killing Firefox...
09:04:38.933 INFO - Got result: OK on session
7cba6a7dadb243618c046ee7fb6c6bc9
09:09:28.085 INFO - Command request: getNewBrowserSession[*firefox,
http://www.irian.at, ] on session null
09:09:28.086 INFO - creating new remote session
09:09:28.088 INFO - Allocated session 97dec9f0b53545acbc9ca3624fc6cbd4 for
http://www.irian.at, launching...
09:09:28.165 INFO - Preparing Firefox profile...
09:09:31.873 INFO - Launching Firefox...
09:09:35.599 INFO - Got result: OK,97dec9f0b53545acbc9ca3624fc6cbd4 on session
97dec9f0b53545acbc9ca3624fc6cbd4
09:09:35.604 INFO - Command request:
open[http://www.irian.at/selenium-server/tests/html/ajax/ajax_autocompleter2_test.html,
] on session 97dec9f0b53545acbc9ca3624fc6cbd4
09:09:41.698 INFO - Got result: XHR ERROR: URL =
http://www.irian.at/selenium-server/tests/html/ajax/ajax_autocompleter2_...
Response_Code = 404 Error_Message = Not Found on session
97dec9f0b53545acbc9ca3624fc6cbd4
09:09:41.707 INFO - Command request: testComplete[, ] on session
97dec9f0b53545acbc9ca3624fc6cbd4
09:09:41.707 INFO - Killing Firefox...
09:09:41.740 INFO - Got result: OK on session
97dec9f0b53545acbc9ca3624fc6cbd4
10:18:38.252 INFO - Command request: getNewBrowserSession[*firefox,
http://www.google.com/, ] on session null
10:18:38.253 INFO - creating new remote session
10:18:38.254 INFO - Allocated session c4b9c7f35ea34d428b50f2f31a6181c2 for
http://www.google.com/, launching...
10:18:38.322 INFO - Preparing Firefox profile...
10:18:41.921 INFO - Launching Firefox...
10:18:45.741 INFO - Got result: OK,c4b9c7f35ea34d428b50f2f31a6181c2 on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:45.800 INFO - Command request: open[http://www.google.com/, ] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.204 INFO - Got result: OK on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.211 INFO - Command request: type[q, hello world] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.277 INFO - Got result: OK on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.282 INFO - Command request: click[btnG, ] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.334 INFO - Got result: OK on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:47.340 INFO - Command request: waitForPageToLoad[5000, ] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:48.359 INFO - Got result: OK on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:48.365 INFO - Command request: getTitle[, ] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:48.411 INFO - Got result: OK,hello world - Google Search on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:48.416 INFO - Command request: testComplete[, ] on session
c4b9c7f35ea34d428b50f2f31a6181c2
10:18:48.417 INFO - Killing Firefox...
10:18:48.434 INFO - Got result: OK on session
c4b9c7f35ea34d428b50f2f31a6181c2


ALL this happens on TerminalOne, so keep that window open to check for the
above while you are doing steps below.

STEP#1. In TerminalTwo, Change directory to the
'python-client' to run your scripts. Lets test the selenium.py script first.
Btw, note that your bash file must contain the PYTHONPATH for all the
directories that you run .py scripts from.

:~/selenium-remote-control-1.0.3$ ls
README.txt  selenium-php-client-driver-1.0.1 
selenium-dotnet-client-driver-1.0.1 
selenium-python-client-driver-1.0.1
selenium-java-client-driver-1.0.1  selenium-ruby-client-driver-1.0.1 
selenium-perl-client-driver-1.0.1    selenium-server-1.0.3

:~/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1$ python
selenium.py

If it returns silently (read, No errors), it means your selenium server is
working.

STEP#2
. Try testing another script, test_google.py
or test_default_server.py

:~/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1$ ls
doc    test_ajax_jsf.py  test_google.py~   
selenium.py  test_ajax_jsf.pyc  test_google.pyc
selenium.pyc                    
test_default_server.py   test_i18n.py 
selenium_test_suite_headless.py  test_default_server.pyc 
test_i18n.pyc
selenium_test_suite.py  test_google.py

:~/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1$ python
test_default_server.py
Using selenium server at localhost:4444
E
======================================================================
ERROR: testLinks (__main__.TestDefaultServer)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_default_server.py", line 36, in testLinks
   
selenium.open("/selenium-server/tests/html/test_click_page1.html")
  File
"/home/me/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1/selenium.py",
line 764, in open
    self.do_command("open", [url,])
  File
"/home/me/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1/selenium.py",
line 215, in do_command
    raise Exception, data
Exception: XHR ERROR: URL =
http://localhost:4444/selenium-server/tests/html/test_click_page1.html
Response_Code = 404 Error_Message = Not+found

----------------------------------------------------------------------
Ran 1 test in 8.852s

FAILED (errors=1)

:~/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1$ python
test_ajax_jsf.py
Using selenium server at localhost:4444
E
======================================================================
ERROR: testKeyPress (__main__.TestAjaxJSF)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_ajax_jsf.py", line 39, in testKeyPress
   
selenium.open("http://www.irian.at/selenium-server/tests/html/ajax/ajax_autocompleter2_test.html")

  File
"/home/me/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1/selenium.py",
line 764, in open
    self.do_command("open", [url,])
  File
"/home/me/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1/selenium.py",
line 215, in do_command
    raise Exception, data
Exception: XHR ERROR: URL =
http://www.irian.at/selenium-server/tests/html/ajax/ajax_autocompleter2_...
Response_Code = 404 Error_Message = Not Found

----------------------------------------------------------------------
Ran 1 test in 13.663s

FAILED (errors=1)

:~/selenium-remote-control-1.0.3/selenium-python-client-driver-1.0.1$ python
test_google.py
.
----------------------------------------------------------------------
Ran 1 test in 10.190s

OK

When you are running the above scripts you would see Selenium
throw a browser with messages but this is too fast and disappears. In the
second terminal,   run your scripts from the directory you've stored
them in.

 


Original Source: http://svaksha.com/post/2010/selenium-remote-control-python-client