2015-12-08 14 views
1

我正在研究一個使用Selenium Webdriver打開Mozilla Firefox實例的工具。 有三個實例在同一時間加載同一頁面。 由於網頁驅動程序加載速度緩慢,我想在所有瀏覽器中加載相關頁面並行。多處理或並行調用某些函數的最佳方式

我的代碼今天看起來是這樣的:

browser1 = webdriver.Firefox() 
browser2 = webdriver.Firefox() 
browser3 = webdriver.Firefox() 

browser1.get('http://google.com') 
browser2.get('http://google.com') 
browser3.get('http://google.com') 

在例如代碼,browser2將加載之後才browser1將完成他的負荷。 我正在尋找一種方式來加載所有的三個瀏覽器並行。

注意 - 我需要加入所有這些,意味着代碼只會繼續在這三個瀏覽器將加載成功

感謝提前

+0

https://docs.python.org/2/library/threading.html – timgeb

回答

0

我不知道,這將工作(可現在不檢查它),但你應該嘗試:

from Multiprocessing import Process 
def first_browser(): 
    browser1 = webdriver.Firefox() 
    browser1.get('http://google.com') 
def second_browser(): 
    browser2 = webdriver.Firefox() 
    browser2.get('http://google.com') 
def third_browser(): 
    browser3 = webdriver.Firefox() 
    browser3.get('http://google.com') 
p1 = Process(target=first_browser) 
p2 = Process(target=second_browser) 
p3 = Process(target=third_browser) 
+0

我如何能做到這一點等待所有一個「加入」法三個加載? – Dan

+0

等到所有瀏覽器完成加載'Google'頁面開始新的動作或加載什麼? – Andersson

+0

等待開始新的操作,例如採取所有人的page_source – Dan