2015-01-07 60 views
1

我目前有一個HTML頁面,我通過Selenium打開並單擊元素,填寫表單並保存。多處理和硒,並行運行多個瀏覽器?

但是這很慢,我真的想加快速度。 我想同時運行多個瀏覽器,爲每一個不同的xpaths點擊。這可能嗎?

截至目前,我有一個包含三個用戶對象的列表。我想爲每個用戶運行3個獨立的硒進程,它們都會觸及相同的網頁,但是會點擊不同的元素。我想同時做到這一點。

這裏是我的代碼(不工作):

def main(): 
    pool = Pool(processes=4) 
    pool.map(bookRooms, users) 

... 

def bookRooms(users): 
    if not users: 
     logging.error("No available times") 
    else: 
     driver = Browser('phantomjs') 
     driver.visit(url) 

     for user in users: 
      for xpath in user.xpaths: 

       driver.find_by_xpath(user.getXPath()).click() 

       driver.find_by_xpath("id('save')").click() 

       driver.find_by_name("username").fill(user.getUsername()) 

       driver.find_by_name("password").fill(user.getPassword()) 

       driver.find_by_name("submit").click() 

     driver.close() 

如果你想像我的名單看起來是這樣那麼:

[User1, User2, User3] 

我如何可以調用bookRooms()方法,讓它跑起來這並行:

bookRooms(User1) 
bookRooms(User2) 
bookRooms(User3) 
... 

基本上,打破名單和運行e方法在每個元素上。硒能夠以這種方式工作嗎?

謝謝

回答

-3

我無法找到與硒+ Python的多線程什麼,但下面Blog post介紹多 - 我可能會從那裏開始。

相關問題