Search code examples
pythonseleniumselenium-webdriverselenium-rcload-testing

Selenium testing without browser


I use Selenium RC for testing. Now to perform a load test, I want to run parallel test cases. Is there any way to run them without opening a browser?


Solution

  • To set up on Centos (do all installation as root)

    Install pip Download https://bootstrap.pypa.io/get-pip.py

    python get-pip.py
    

    Installing selenium If you have pip on your system, you can simply install or upgrade the Python bindings:

    pip install -U selenium
    

    Alternately, you can download the source distribution from PyPI (e.g. selenium-2.53.1.tar.gz), unarchive it, and run:

    python setup.py install
    

    install the program: pyvirtualdisplay

    pip install pyvirtualdisplay
    
    yum install Xvfb libXfont Xorg
    

    Then modify your script and get this.

    from pyvirtualdisplay import Display
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re
    
    class SeleniumDemo(unittest.TestCase):
    
        def setUp(self):
            self.display = Display(visible=0, size=(800, 600))
            self.display.start()
            self.driver = webdriver.Firefox()
            self.driver.implicitly_wait(30)
            self.base_url = "http://www.soastastore.com/"
            self.verificationErrors = []
            self.accept_next_alert = True
    
    
        def tearDown(self):
            self.driver.quit()
            self.display.stop()
            self.assertEqual([], self.verificationErrors)