最近小爬在用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实际上更新还是比较频繁的。但是总体上,只要我们的脚本没有运行出错,我们可以暂且不管它的升级,问题不大!