2011-09-29 137 views
27

我使用Selenium RC進行測試。現在要執行負載測試,我想運行並行測試用例。 有沒有辦法在不打開瀏覽器的情況下運行它們?沒有瀏覽器的硒測試

+0

可能重複[是否有可能隱藏在硒RC瀏覽器?(http://stackoverflow.com/questions/1418082/is-it-possible-to-hide-the-瀏覽器在硒 - rc) –

回答

4

要建立在CentOS(做所有安裝根)

安裝點下載https://bootstrap.pypa.io/get-pip.py

python get-pip.py 

安裝硒 如果您的系統上有點子,可以簡單地安裝或升級Python綁定: pip install -U selenium

或者,您可以從PyPI下載源代碼發佈(例如,硒2.53.1.tar.gz),解除封存,並運行:

python setup.py install 

安裝的程序:pyvirtualdisplay

pip install pyvirtualdisplay 

yum install Xvfb libXfont Xorg 

然後修改你的腳本中添加了大膽的線條和** * *

**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 

類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):`enter code here` 
    self.driver.quit() 
    ***self.display.stop()*** 
    self.assertEqual([], self.verificationErrors) 
43

是的。只需install PhantomJS

然後,改變這一行:

driver = webdriver.Firefox()

到:

driver = webdriver.PhantomJS()

你的代碼的其餘部分將不需要改變,沒有瀏覽器將打開。


出於調試目的,使用driver.save_screenshot('screen.png')你的代碼的不同步驟或只需再次切換回火狐:

if os.getenv("environment") == "production": 
    driver = webdriver.PhantomJS() 
else: 
    driver = webdriver.Firefox() 
+2

這應該是答案 –

+0

最簡單的答案通常是最好的!謝謝。 – hod

0

請務必遵循文檔。這是selenium doc說的。它提供了一個standalone jar

  • 下載獨立的jar。並用命令運行

    java -jar selenium-server-standalone.jar 
    
  • 現在您將看到一臺stanalone服務器啓動。

  • 現在設置您的webdriver像下面和休息部分將是它的樣子。

    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True}) 
    
  • 摘要代碼會像。的

    from selenium import webdriver 
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
    from selenium.webdriver.common.keys import Keys 
    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', 
    desired_capabilities={'browserName': 'htmlunit', 'version': '2', 
    'javascriptEnabled': True}) 
    driver.get("http://www.python.org") 
    assert "Python" in driver.title 
    elem = driver.find_element_by_name("q") 
    elem.clear() 
    elem.send_keys("pycon") 
    elem.send_keys(Keys.RETURN) 
    assert "No results found." not in driver.page_source 
    driver.close() 
    
相關問題