有了瀏覽器,是可以做到的,它只是不那麼容易和簡單,因爲Firefox的配置操縱。
由於webdriver的綁定暴露在「自定義」的能力和命令行參數添加的功能,你可以給它的任何命令行開關是Chrome的知道:
http://peter.sh/experiments/chromium-command-line-switches/
有了這個,我們可以爲Chrome加載配置文件,就像您使用Firefox一樣。
但是,WebDriver綁定不會公開選項以及Firefox配置文件。所以它必須手動完成。
首先,找出您的配置文件居住的地方:
在Chrome中訪問此URL。
chrome://version/
它會告訴你它正在加載什麼樣的配置文件(以及它正在使用什麼命令切換)。將配置文件路徑複製到資源管理器中並轉至該資源
它應該是,在默認情況下,使用Default
配置文件目錄。在瀏覽器中進入關卡,所以你坐在User Data
文件夾中。
下一步,創建一個新的配置文件供Selenium使用。打開Chrome,進入設置>用戶>添加新用戶。給它一個名字。
一旦創建,Chrome將爲該用戶打開一個新的Chrome窗口。下一步是強制Chrome,僅限該用戶,將下載保存在某個地方。
這可以通過兩種方式完成。在Chrome用戶界面中,轉到設置,然後更改下載目錄並確保其旁邊的複選框未被選中,或獲得更多廣告素材...
所有Chrome首選項都存儲在文件中,存儲在用戶目錄中。你應該已經打開瀏覽器窗口,坐在Chrome用戶文件夾中的User Data
文件夾中。你應該希望看到它創建了一個新的配置文件(可能被稱爲Profile 1
)。進入它。
現在查找名爲首選項(無擴展名)的文件。
用記事本編輯它(這是一個帶有JSON的文本文檔)。
查找下載部分,它看起來就像這樣:
"download": {
"directory_upgrade": true,
"extensions_to_open": ""
},
添加在這個關鍵,把你想你的文件保存的路徑:
"default_directory": "PATH",
確保你使用另一個反斜槓來轉義路徑中的任何斜線,與使用Visual Studio調試器時它以相同方式轉義。例如,C:\Bob\Jim\Downloads
應輸入爲C:\\Bob\\Jim\\Downloads
。
保存文件。
現在你有一個配置文件,下載到某個地方。如何讓Chrome使用此配置文件?你告訴它在啓動時打開哪個配置文件。該命令行是:
--profile-directory="Profile 1"
(更換Profile 1
與不管它是所謂的User Data
文件夾,如果它不叫那個)。
好的,我們可以告訴Chrome加載一個特定的配置文件,但我們如何告訴Selenium也這樣做?簡單!將其添加爲「附加命令行開關」。
var chromeOptions = new ChromeOptions();
chromeOptions.AddArgument(@"--profile-directory=""Profile 1""");
硒將於確保命令行開關向下傳遞到Chrome瀏覽器的照顧。
(注意:如果有人知道更簡單的解決方案,請告訴我!)。
至於IE,我已經在IE8和IE9上測試過了,它工作正常。 IE可以考慮默認下載位置的註冊表項。雖然我不能評論IE7或更低版本。
導航到,使用註冊表編輯器來(這是一個每個Windows用戶設置):
HKEY_CURRENT_USER \軟件\微軟\的Internet Explorer
添加名爲Download Directory
一個字符串值。這是值將是您想要下載的位置。沒有必要逃避路徑順便說一句。
只需確保您在Windows下登錄的用戶已設置此值,並且不再需要其他設置。