2016-07-11 14 views
0

各ドライバハンドルに対してプロキシ/プロファイルを設定できるかどうかを知る必要があります。 は、私は、次のコードを持っている:同じwebdriver、複数のインスタンス、それぞれ独自のプロファイル

def browser(url, id, user1, parolauser1, user2, parolauser2): 
    print multiprocessing.current_process() 
    fp = webdriver.FirefoxProfile("C:\Users\yt\AppData\Roaming\Mozilla\Firefox\Profiles\hgv9qvsn.default") 
    driver = webdriver.Firefox(fp) 
    driver.get(url) 
    for handle in driver.window_handles: 
     if "whateveriwant" in driver.title and id == 0: 
      ... 
      for catevreaueu in range(0,7000): 
       test_to_see_how_many_lines_are_in_a_file = function_test_to_see_how_many_lines_are_in_a_file_for_this_first_handle() 
       print test_to_see_how_many_lines_are_in_a_file 
       if test_to_see_how_many_lines_are_in_a_file < 3: 
        another_function_for_continuing_on_this_first_handle(driver) 
       else: 
        driver.close() 
        break 
     if "whateveriwant" in driver.title and id == 1: 
      ... 
      for catevreaueu in range(0,7000): 
       test_to_see_how_many_lines_are_in_a_file = function_test_to_see_how_many_lines_are_in_a_file_for_this_s_handle() 
       print test_to_see_how_many_lines_are_in_a_file 
       if test_to_see_how_many_lines_are_in_a_file < 3: 
        another_function_for_continuing_on_this_second_handle(driver) 
       else: 
        driver.close() 
        break 
    return 
if __name__ == '__main__': 
    jobs = [] 
    user_one = "userone" 
    parola_user_one = "passwordforuserone" 
    user_two = "usertwo" 
    parola_user_two = "passwordforuser2" 
    pages = ["http://www.didi.com", "http://www.didi.com/"] 
    id = 0 
    for page in pages: 
     p = multiprocessing.Process(target=browser, args=(page, id, user_one, parola_user_one, user_two, parola_user_two)) 
     id+=1 
     jobs.append(p) 
     p.start() 

は、今では2つのwebdriverをインスタンスを起動しますが、あなたがそれらの両方が同じプロファイルを使用して見ることができるように。

答えて

0

時々動作することがありますが、同じプロファイルが必要な場合は複数のコピーを作成することをお勧めします。 underlying codeを見ると、webdriverのインスタンスを作成するだけでプロファイル内のいくつかの部分が変更されることがわかります。 driver.quitは、プロファイルを完全に削除します。

+0

これは機能しますが、私はどのようにプロキシをそれぞれ設定できるのかわかりません – user215379

+0

私が言ったように、時々動作するかもしれませんが、それは安定していません。プロキシはこれらの例の1つです.Firefoxはそれをプロファイルファイルに設定し、それらは共有されるためです。 –

関連する問題