selenium 是一个自动化测试工具,
selenium的特点:
1.由程序控制浏览器进行操作,而不是手动操作浏览器
2.程序控制浏览器进行操作的时候,速度非常慢,所以要谨慎使用selenium
3.使用selenium控制浏览器的时候,需要下载浏览器对应的驱动程序
4.selenium为开源,免费,但是更新速度没有浏览器快,不是selenium
更新慢,而是浏览器更新快,要注意selenium和浏览器之间的对应关系
windows安装可以采用
pip install selenium
如果电脑同时安装了python3 和python2 把pip 改成pip3 或者pip2 就可以了
然后我们创建一个py文件,使用selenium 注意:文件名一定不要和python包的名字相同,否则会报错
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
运行发现会报错,因为我们没有安装浏览器驱动,下载之前先检查谷歌和火狐浏览器的版本,然后根据版本号下载对应的驱动。
可以从该chromedriver网站下载对应chromedriver的驱动,从geckodriver下载对应版本的驱动。
下载完之后将两个压缩包解压,将两个 [ .exe ] 文件放到python目录下,与python.exe文件平级即可,比如我的文件路径为 D:\python\Anaconda ,只需要将两个[ .exe ] 文件放到该目录下
再次运行上面代码,如果出现错误将编译器关闭,重新打开。
如果出现下面错误,可能是因为网速慢,页面还没有加载出来,程序就执行完毕,导致获取不到element元素
selenium.common.exceptions.NoSuchElementException:Message: Unable to locate element: [id="kw"]
解决办法:可以让程序隐式等待10秒,代码如下:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.implicitly_wait(10) #程序隐式等待10秒
driver.find_element_by_id('kw').send_keys('selenium')
无头浏览器PhantomJS的安装
首先下载 PhantomJS,
第一种
下载完成后,放到合适的文件夹下解压,将其路径添加到环境变量中,路径如:D:\python\phantomjs-2.1.1-windows\bin
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=r'D:\python\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.get('http://www.baidu.com')
第二种
下载完成后,解压,将phantomjs.exe放到与python.exe同级目录下,与python.exe文件平级即可
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://www.baidu.com')
个人推荐使用第二种,比较方便