什么是selenium
selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。
Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
这里要说一下比较重要的PhantomJS,PhantomJS是一个而基于WebKit的服务端JavaScript API,支持Web而不需要浏览器支持,其快速、原生支持各种Web标准:Dom处理,CSS选择器,JSON等等。PhantomJS可以用用于页面自动化、网络监测、网页截屏,以及无界面测试
Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
这里要说一下比较重要的PhantomJS,PhantomJS是一个而基于WebKit的服务端JavaScript API,支持Web而不需要浏览器支持,其快速、原生支持各种Web标准:Dom处理,CSS选择器,JSON等等。PhantomJS可以用用于页面自动化、网络监测、网页截屏,以及无界面测试
引用自https://www.jianshu.com/p/3aa45532e179
Selenium安装配置
首先安装Selenium3
python3 -m pip install selenium
01 安装Firefox驱动
版本对照表:https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
驱动releases:https://github.com/mozilla/geckodriver/releases
这里我直接讲驱动geckodriver.exe放入了C:\Program Files\Mozilla Firefox中,并且配置环境变量
02 安装Chrome驱动
版本驱动对照下载表:http://chromedriver.storage.googleapis.com/index.html
不一定要把chromedriver.exe放到浏览器目录中,只要将目录添加到环境变量中
Selenium基本使用
demo:
from selenium import webdriver#导入库 browser = webdriver.Firefox()#声明浏览器 url = 'https:www.baidu.com' browser.get(url)#打开浏览器预设网址 print(browser.page_source)#打印网页源代码 browser.close()#关闭浏览器
可直接调用浏览器完成爬虫工作
browser.get(url)
driver.get
方法会导向给定的URL的页面
这里我模拟进入百度页面,输入yunying
这里用xpath寻找ID
demo:
from selenium import webdriver#导入库 from time import sleep browser = webdriver.Firefox()#声明浏览器 url = 'https:www.baidu.com' browser.get(url)#打开浏览器预设网址 input_xpath='//*[@id="kw"]' browser.find_element_by_xpath(input_xpath).send_keys('yunying')
#####
find_element_by_xpath() #以xpath语法查找element send_keys() #发送一些字符,类似键盘输入
需要用回车的话,需要用到click方法,,模拟点击百度一下的按钮
demo:
from selenium import webdriver#导入库 from time import sleep browser = webdriver.Firefox()#声明浏览器 url = 'https:www.baidu.com' browser.get(url)#打开浏览器预设网址 input_xpath='//*[@id="kw"]' browser.find_element_by_xpath(input_xpath).send_keys('yunying') submit_xpath='//*[@id="su"]' browser.find_element_by_xpath(submit_xpath).click() sleep(2) browser.quit()
#####
click() 模拟点击
clear() 清除
#####
如果需要清除写入的字符串的话,可以如下定义
from selenium import webdriver#导入库 from time import sleep browser = webdriver.Firefox()#声明浏览器 url = 'https:www.baidu.com' browser.get(url)#打开浏览器预设网址 input_xpath='//*[@id="kw"]' input_element=browser.find_element_by_xpath(input_xpath) input_element.send_keys('yunying') sleep(2) input_element.clear()