selenium安装与基本

Selenium介绍

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。主要用于自动化测试,也有人将其用于爬虫。

安装

pip安装

1
pip install selenium

安装后同时还需要安装浏览器驱动,如使用Chrome就需要下Chrome的驱动,phantomjs就需要下phantomjs的驱动。

比如下载Chrome驱动,可以去淘宝的NPM镜像中下载,对于不同的Chrome版本,最好下载对应版本的Chrome驱动,如果遇到

1
selenium send_keys unknown error: call function result missing 'value'

这样的错误,可能就是版本不对应造成的,可以尝试下载其它版本的Chrome驱动试试。

在下载完并安装后,需要将驱动加到系统环境变量中,或者将chromedriver执行文件放到执行脚本目录下。

基本使用

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome()
browser.get('http://www.baidu.com')

time.sleep(3)
browser.maximize_window() #全屏显示

elem = browser.find_element_by_name("wd") #名字为wd的元素
elem.send_keys("python") # 传值,输入pycon
time.sleep(2)
elem.clear() # wd为文本框,清除文本框内容
elem.send_keys(u"撸猫者说") # 传值,输入pycon
commitkey = browser.find_element_by_id("su") #id为su的元素
commitkey.send_keys(Keys.ENTER) # 传值 按下回车 su为按钮

a = browser.page_source
time.sleep(5)
print(browser.current_url)
browser.close()

例子流程:打开baidu,全屏显示,在搜索框中输入python,清除搜索框,再输入“撸猫者说”,再点击搜索按钮。

例子没什么作用,主要为了表现一些基础用法。

调用时,确定webdriver使用的浏览器驱动。

1
browser = webdriver.Chrome()

打开页面:

1
browser.get('http://www.baidu.com')

find_element_by_name与browser.find_element_by_id都是为定位元素的用法,要注意的是,这两个都只能定位单个元素,如果要获取多个元素列表,需要在element后加上”s”,就是find_elements_by_name、browser.find_elements_by_id,除了这两个还有其它定位方法,官方文档中提供的定位元素方法有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
定位单元素:
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector

定位元素列表:
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector

详细用法与例子在官方文档中可查看。

获取元素后,可以获取元素属性,比如:

1
elem.get_attribute('src')

可以获取elem的src链接。

也可以用send_keys传值,包括为文本框输入文本,或引入Keys类,有按钮元素上使用Enter键等。

1
2
3
4
5
6
7
# 输入文本
elem = browser.find_element_by_name("wd")
elem.send_keys("pycon")

# 提交按钮
commitkey = browser.find_element_by_id('su')
commitkey.send_keys(Keys.ENTER)

结束时记得调用close(),不然浏览器不会自动关闭。

1
browser.close()

- - END - -


腾讯云
0%