2017-04-27 479 views
0

我正在使用Selenium和Python中的chromedriver來並行測試2個功能。基本上我的網頁有2個下拉菜單。從任何下拉菜單中選擇一個選項將下載一個文件。我有兩個腳本分別測試兩個下拉菜單。現在讓我們說script-1打開chrome並加載網頁。現在腳本-1打開下拉菜單-1,它正在根據給定的輸入從它中選擇一個選項。在此期間,如果我從打開的網頁導航到任何其他窗口,例如。文件資源管理器,下拉菜單將會關閉而不會選擇選項並且測試用例會掛起。同樣,如果我在打開下拉菜單之前將窗口最小化,當單擊選項下載文件時,窗口將自動重新打開。我怎樣才能停止重新開放窗口。有沒有Chrome的設置?Python-Selenium-Chrome最小化窗口本身是最大化

即使我在執行過程中遠離計算機,我想同時並行運行這兩個腳本,因爲它們都打開單獨的窗口,但在某個時間之後,其中一個掛起了另一個窗口,我必須手動單擊下拉菜單讓它恢復生機。我打算使用多線程運行腳本,並使用2個線程來引用每個腳本。

注意:我無法使用urlretrieve,因爲網頁中的文件沒有預定義的網址。 PhantomJS不支持文件下載。

我正在使用Windows 10機器。

回答

0

有幾種方法使用硒網格和多進程要做到這一點

  1. 運行並行測試,你可以在搬運工做到這一點很容易,使用泊塢窗/硒,參考使用碼頭工人在https://github.com/SeleniumHQ/docker-selenium
  2. 禁用保存對話框中鉻

    options = webdriver.ChromeOptions() 
    options.add_experimental_option("prefs", { 
        "download.default_directory": r"yourpath", 
        "download.prompt_for_download": False 
    }) 
    DesiredCapabilities caps = DesiredCapabilities.chrome(); 
    
    driver = webdriver.Chrome(chrome_options=options) 
    
+0

我已經禁用了保存對話框。我會看着碼頭工人,讓你知道。 – pratibha