selenium和geckodriver协同
先注意一件事,之前通过学习了解到,selenium和chromedriver不能随意乱用,每一个版本必须和相关的driver匹配才能运行。
https://blog.csdn.net/huilan_same/article/details/51896672
Firefox同理。
1、下载驱动,geckodriver是firefox的驱动程序,下载:https://github.com/mozilla/geckodriver/releases
当然,这个地址太慢了。换用早一点版本的也可以:http://www.opdown.com/soft/100742.html#download
下载之后,按照windows的64位/32位系统,解压到自己的python文件夹,添加系统的环境变量PATH。比如python装在C:\ANACONDA3\Scripts了,就把这个目录添加到PATH进去。
2、尝试单独运行driver,进入cmd,输入geckodriver回车,看到类似这样的提示
1548067351009 geckodriver INFO Listening on 127.0.0.1:4444
就说明可以了。
以下是chrome和geckodriver的对应关系表,v2.0对应了31-34,技术不能操之过急啊。如果使用某版本的chrome,必须使用相应版本的driver,否则启动失败。
http://chromedriver.storage.googleapis.com/index.html
3、配合浏览器。下载相应的浏览器。截止当前时间,driver是(下载的时候可以看到geckodriver-v0.22.0-win64,那么就是0.22版)0.22,下载firefox51.0,启动成功。
import time import sys from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary #初始化driver需要传入FirefoxBinary变量,变量详解请见help binary = FirefoxBinary('C:\\Program Files\\Firefox51\\firefox.exe', log_file=sys.stdout) driver = webdriver.Firefox(firefox_binary=binary) driver.get("http://www.sogou.com") driver.find_element_by_id("query").clear() driver.find_element_by_id("query").send_keys("Python") driver.find_element_by_id("stb").click() time.sleep(10) driver.quit()
说明一下,搜狗的input输入框id是query,提交按钮id是stb。可以通过浏览器按F12或者右键-查看元素(O)看到。