前言
如果想用多個瀏覽器跑同一套測試代碼,driver=webdriver.Firefox()這里的driver就不能寫死了,可以把瀏覽器名稱參數化。
后續如果想實現多線程同時啟動瀏覽器執行用例,用前面講的tomorrow模塊,設置下線程數套用下就可以了
啟動瀏覽器
1.為了實現多個瀏覽器的靈活切換,可以把啟動瀏覽器寫一個函數,參數用瀏覽器名稱就行了
def startBrowser(name):
"""
打開瀏覽器函數,"firefox"、"chrome"、"ie"、"phantomjs"
"""
try:
if name == "firefox" or name == "Firefox" or name == "ff":
print("start browser name :Firefox")
driver = webdriver.Firefox()
return driver
elif name == "chrome" or name == "Chrome":
print("start browser name :Chrome")
driver = webdriver.Chrome()
return driver
elif name == "ie" or name == "Ie":
print("start browser name :Ie")
driver = webdriver.Ie()
return driver
elif name == "phantomjs" or name == "Phantomjs":
print("start browser name :phantomjs")
driver = webdriver.PhantomJS()
return driver
else:
print("Not found this browser,You can use 'firefox', 'chrome', 'ie' or 'phantomjs'")
except Exception as msg:
print("啟動瀏覽器出現異常:%s" % str(msg))
多線程啟動不同瀏覽器
1.代碼參考:
# coding:utf-8
from selenium import webdriver
import time
from tomorrow import threads
def startBrowser(name):
"""
打開瀏覽器函數,"firefox"、"chrome"、"ie"、"phantomjs"
"""
try:
if name == "firefox" or name == "Firefox" or name == "ff":
print("start browser name :Firefox")
driver = webdriver.Firefox()
return driver
elif name == "chrome" or name == "Chrome":
print("start browser name :Chrome")
driver = webdriver.Chrome()
return driver
elif name == "ie" or name == "Ie":
print("start browser name :Ie")
driver = webdriver.Ie()
return driver
elif name == "phantomjs" or name == "Phantomjs":
print("start browser name :phantomjs")
driver = webdriver.PhantomJS()
return driver
else:
print("Not found this browser,You can use 'firefox', 'chrome', 'ie' or 'phantomjs'")
except Exception as msg:
print("啟動瀏覽器出現異常:%s" % str(msg))
@threads(5)
def run_case(name):
driver = startBrowser(name)
driver.get("https://www.cnblogs.com/yoyoketang/")
time.sleep(3)
print(driver.title)
driver.quit()
if __name__ == "__main__":
names = ["chrome", "ff", "ie"]
for i in names:
run_case(i)