Selenium3学习

什么是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可以用用于页面自动化、网络监测、网页截屏,以及无界面测试
引用自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()

猜你喜欢

转载自www.cnblogs.com/BOHB-yunying/p/12551577.html