最近小爬在用chromedriver.exe結合python selenium這條技術棧做web自動化時發現,driver.maximize_window()可以正常使用,但是driver.minimize_window()卻遭遇意外失敗:
“selenium.common.exceptions.WebDriverException: Message: unknown command: session/a527d94bd8530869d34228faaf51f7c8/window/minimize”
結合該方法的源碼:
def minimize_window(self): """ Invokes the window manager-specific 'minimize' operation """ self.execute(Command.MINIMIZE_WINDOW)
def maximize_window(self): """ Maximizes the current window that webdriver is using """ params = None command = Command.W3C_MAXIMIZE_WINDOW if not self.w3c: command = Command.MAXIMIZE_WINDOW params = {'windowHandle': 'current'} self.execute(command, params)
可以發現這兩方法用的思路不太一樣,后來上stackOverFlow上考證一番,才知道是chromedriver版本與chrome瀏覽器不兼容所致。因為之前chromedriver一直可以用,所以就沒有隨着chrome瀏覽器來頻繁升級chromedriver。
下載了瀏覽器配套版本的chromedriver后,問題瞬間解決。下面附上國內淘寶的chromedriver鏡像源地址:
http://npm.taobao.org/mirrors/chromedriver/
可以看出來,chromedriver實際上更新還是比較頻繁的。但是總體上,只要我們的腳本沒有運行出錯,我們可以暫且不管它的升級,問題不大!