2015-12-17 43 views
2

我有一個使用Selenium的python腳本。我需要在同一時間運行該腳本的多個實例,也就是說,同樣的腳本使用不同的參數多次運行:使用Selenium的相同腳本的多個實例

python my_script.py --arg1 2222222 
python my_script.py --arg1 222 
python my_script.py --arg1 342432 

在它們都使用同一個瀏覽器(不一樣的窗口中的代碼,但相同的瀏覽器)。如果重要的話,每個腳本只使用一個線程。

那麼可以同時運行它們嗎?它會導致一種不正當行爲嗎?或者一般情況下一切都會好的?

我還沒有在Selenium網站上找到有關這方面的信息。

和更重要的是,他們將共享緩存/代理/ Cookie或瀏覽器的每個實例都有自己的?例如,如果我運行5個腳本,這樣每個腳本都會有自己的瀏覽器,比如說Firefox,那麼每個Firefox都會有自己的 cache/proxies/cookies?

回答

3

每當我們通過Selenium調用瀏覽器時,它會創建一個指定瀏覽器的新實例線程。如果已經定義了DesiredCapabilities,那麼這些特定設置將應用於被調用的瀏覽器實例。

這是確切的原因,你可以運行selenium測試並行方式,運行瀏覽器的多個實例,其中每個瀏覽器使用不同的腳本執行。

http://www.guru99.com/sessions-parallel-run-and-dependency-in-selenium.html給出了有關selenium如何處理瀏覽器實例的信息。

瀏覽器從未存儲緩存/代理/ Cookie的清理狀態開始。你可以注意到selenium啓動的瀏覽器實例沒有任何擴展/附加組件。

+0

因此** same **瀏覽器的每個實例都可以通過自己的代理連接到互聯網? –

+0

你的意思是你有很多網絡資源,你想要爲每個瀏覽器更改代理嗎?如果您只想從瀏覽器連接網站,請確保瀏覽器實例在瀏覽器上,請參閱此鏈接以設置您自己的代理http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy – parishodak

+0

自己的,雖然它使用相同的代理,但不會有任何兩個瀏覽器之間的干擾。 – parishodak

相關問題