2014-03-24 68 views
3

我正在測試BrowserStack並且有一小部分用Python編寫的Selenium WebDriver測試。我的目標是在幾個不同的瀏覽器中運行測試。目前,我正在使用desired_capabilities來指定瀏覽器,版本,操作系統等。如何在多個瀏覽器中運行一個python webdriver測試

如果沒有一堆不同的py文件,用不同的瀏覽器重複測試會是一種好的方法嗎?

這裏的測試是如何設置的:

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.webdriver.common.desired_capabilities import DesiredCapabilities 
import unittest, time, re 


desired_cap = {'browser': 'Chrome', 'browser_version': '33.0', 'os': 'OS X', 'os_version': 'Mavericks', 'resolution': '1600x1200'} 
desired_cap['browserstack.debug'] = True 

class RegWD(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Remote(
     command_executor='http://browserstackstuff.com', 
     desired_capabilities=desired_cap) 
     self.base_url = "http://blahtestsite.com/" 
+0

什麼是「好方法」真的取決於開發者的意見。對另一個來說,一個「好方法」是一個壞方法。它可以通過許多不同的方式完成。所以你現在的問題不適合SO。 – Louis

回答

4

你可以嘗試這樣的:

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.webdriver.common.desired_capabilities import DesiredCapabilities 
import unittest, time, re 


desired_cap = [] 
desired_cap.append({'browser': 'Chrome', 'browser_version': '33.0', 'os': 'OS X', 'os_version': 'Mavericks', 'resolution': '1600x1200'}) 
desired_cap.append({'browser': 'Firefox', 'browser_version': '27.0', 'os': 'OS X', 'os_version': 'Mavericks', 'resolution': '1600x1200'}) 

class RegWD(unittest.TestCase): 
    def setUp(self): 
     for driver_instance in desired_cap: 
      driver_instance['browserstack.debug'] = True 
      self.driver = webdriver.Remote(
      command_executor='http://browserstackstuff.com', 
      desired_capabilities=driver_instance) 
      self.base_url = "http://blahtestsite.com/" 

只是要desired_cap一個元組,並在你想進入它的所有瀏覽器版本追加。添加循環遍歷每個瀏覽器實例。我不得不在課堂之外移動

desired_cap['browserstack.debug'] = True 

,上課以下內

driver_instance['browserstack.debug'] = True 

因爲支架使它怪異。它需要一個[]之間的整數來調用特定的實例。我不是在類的外部創建一個循環來將每個實例設置爲True,而是將該行移動到類中,以便它針對瀏覽器的每個實例運行。

+1

我認爲''self.driver'總是''desired_cap'元組中最後一個元素,因爲'setUp()'方法結束了 - 所有的測試都只與最後一個項目驅動程序一起運行。 –

相關問題