1. 程式人生 > >Selenium2+python自動化71-多個瀏覽器之間的切換【轉載】

Selenium2+python自動化71-多個瀏覽器之間的切換【轉載】

logs ant utf-8 動態 不同的 ova data- 目的 有時

前言

有時候一些業務的功能涉及到多個系統,需要在web系統1打開造一些數據,然後用到某些參數是動態生成的,需要調用web系統2裏面的參數。

舉個簡單例子:在做某些業務的時候,需要手機短信驗證碼,我不可能去搞個手機連著電腦吧,那樣太傻,我們的目的是獲取短信驗證碼,短信驗證碼都有短信平臺去查詢。

當然能直接操作數據庫最簡單了,用python連數據庫直接通過sql去查就行。

一、啟動兩個driver

1.如果我想啟動2個火狐,一個火狐打開百度,另外一個火狐打開博客園,我們只需用2個實例driver去控制就行

(註意:不要兩個都叫driver,要不然後面的會覆蓋前面的,導致無法繼續操作前面那個瀏覽器窗口了)

技術分享

2.運行後結果,桌面啟動2個窗口,一個打開了百度,一個打開了上海-悠悠 博客園

技術分享

二、關掉窗口

1.driver1是控制第一個瀏覽器窗口的實例參數,driver2是控制第二個窗口的實例參數,如果想關掉第一個,driver1.quit()就行了

技術分享

2.quit掉第一個瀏覽器窗口後,前面那個瀏覽器窗口就無法操作了,這裏可以接著操作第二個瀏覽器窗口

# coding:utf-8
from selenium import webdriver
import time

# 啟動第一個瀏覽器
driver1 = webdriver.Firefox()
driver1.get("https://www.baidu.com")
print(driver1.title)

# 啟動第二個瀏覽器
driver2 = webdriver.Firefox()
driver2.get("http://www.cnblogs.com/yoyoketang/")
print(driver2.title)

# 關掉第一個瀏覽器窗口
driver1.quit()

# 點首頁"博客園"按鈕
driver2.find_element_by_id("blog_nav_sitehome").click()
time.sleep(2)
print(driver2.title)

三、封裝啟動瀏覽器方法

1.如果涉及到不同的瀏覽器(如Firefox、chrome)之間的切換,我們可以專門寫一個函數去啟動不同瀏覽器

技術分享

四、參考代碼

# coding:utf-8
from selenium import webdriver

def browser(browser=‘firefox‘):
‘‘‘
open browser "firefox"、"chrome"、"ie"、"phantomjs"
usage:
driver = broswer("chrome")
‘‘‘
try:
if browser == "firefox":
driver = webdriver.Firefox()
return driver
elif browser == "chrome":
driver = webdriver.Chrome()
return driver
elif browser == "ie":
driver = webdriver.Ie()
return driver
elif browser == "phantomjs":
driver = webdriver.PhantomJS()
return driver
else:
print("Not found browser!You can enter ‘firefox‘, ‘chrome‘, ‘ie‘ or ‘phantomjs‘")
except Exception as msg:
print "open browser error:%s" % msg

if __name__ == "__main__":
# 默認啟動firefox
driver_firefox = browser()
driver_firefox.get("https://www.baidu.com")
print("open browser:%s" % driver_firefox.name)
print(driver_firefox.title)

# 啟動第phantomjs
driver_pj = browser("phantomjs")
driver_pj.get("http://www.cnblogs.com/yoyoketang/")
print("open browser:%s" % driver_pj.name)
print(driver_pj.title)

技術分享

Selenium2+python自動化71-多個瀏覽器之間的切換【轉載】