標籤:
雖然WebDriver對Firefox的支援最好,之前寫的指令碼也都在Firefox瀏覽器運行,但最近項目做了整合,發現新整合的功能不太支援Firefox,而近期也沒有計劃做瀏覽器安全色性方面的改進,所以我的自動化指令碼要重新修改,運行在都有良好支援的Chrome瀏覽器上。說了這麼多背景,我們就進入正題吧。
1. 首先需要下載chromeDriver.http://chromedriver.storage.googleapis.com/index.html2. 將下載好的檔案解壓,將chromedriver.exe拷貝到chrome根目錄,一般是在appication目錄下3.可以使用chromeDriver了,如果把chromedriver拷貝到項目根目錄就不需要setProperty了,但是我是放到了Chrome根目錄下,所以要設定驅動路徑。System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");WebDriver driver=new ChromeDriver(); //初始化瀏覽器4.以上三步後,其實就可以直接進入指令碼的編寫了。但是有時候根據需要可能設定下代理和連接埠。雖然我自己的指令碼是不需要設定的,它用了預設的proxy和連接埠。但是之前指令碼出了個錯誤,我就誤認為是proxy設定有問題,所以還寫指令碼對proxy重新設定了下,後來還是沒通過,同事幫我分析之後說不用,神奇注釋掉代碼居然通過了,真是不知道之前的錯誤哪兒來,好吧,就當是學習了。通過以下代碼可以對運行時的proxy進行設定:/* String proxyIpAndPort= "localhost:8080"; DesiredCapabilities cap = new DesiredCapabilities(); Proxy proxy=new Proxy(); proxy.setHttpProxy(proxyIpAndPort).setFtpProxy(proxyIpAndPort).setSslProxy(proxyIpAndPort); cap.setCapability(CapabilityType.ForSeleniumServer.AVOIDING_PROXY, true); cap.setCapability(CapabilityType.ForSeleniumServer.ONLY_PROXYING_SELENIUM_TRAFFIC, true); System.setProperty("http.nonProxyHosts", "localhost"); cap.setCapability(CapabilityType.PROXY, proxy);*/至於Firefox,它也是每次啟動firefox會自動產生一個profile,而不會使用當前Firefox的profile,可以通過FirefoxProfile來設定。暫時就先不寫了,如果哪位需要,可以留言。
Selenium Chrome瀏覽器的啟動以及proxy設定