Python Selenium使用举例
HDUZN

Selenium是一个用于Web应用程序测试的开源工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,实现自动化测试。说白了,就是个Web应用的自动化测试工具。

Web的自动化测试,因为是模拟用户操作一样,自然而然也可以把测试过程中需要的数据、信息等保存下来。所以我也用这个来下载一些公开数据(不用担心对爬虫的限制啥的)。

Selenium with Python中文文档:https://selenium-python-zh.readthedocs.io/en/latest/index.html

一、安装Selenium包

1
pip install selenium

如果不知道自己是否安装过,可以用以下命令:

1
pip install -U selenium

-U:就是 –upgrade,表示如果已安装就升级到最新版。

二、安装浏览器驱动

需要找你自己的浏览器版本对应的驱动下载。
(浏览器一般会自动更新,需要及时更换)

1.下载 WebDriver

1).Chrome WebDriver下载:
https://chromedriver.storage.googleapis.com/index.html

https://sites.google.com/a/chromium.org/chromedriver/downloads

如果用的是 Chrome115以上的版本,下载地址:
https://googlechromelabs.github.io/chrome-for-testing/

2).Edge WebDriver下载:
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

3).Firefox WebDriver下载:
https://github.com/mozilla/geckodriver/releases

4).Safari WebDriver下载:
https://webkit.org/blog/6900/webdriver-support-in-safari-10/

Chrome WebDriver下载举例

第2个下载不了(需要梯子),就用1个下载地址。

比如我用的Chrome版本是:101.0.4951.54
那就直接在页面上搜 101.0.4951,然后最后一位找个小一点最接近的,比如 101.0.4951.41 这个目录点进去。

会提供 Linux、Mac、Windows系统对应的版本,比如我这是Windows系统的,就下载对应的 chromedriver_win32.zip。
解压后得到一个 chromedriver.exe 文件,随便找地方放一下(回头需要用到这个文件的路径)。

Edge WebDriver下载举例

比如我用的Edge版本是:101.0.1210.32 (正式版本) (64 位)
打开下载页后,直接看到这个版本对应有:x86、x64、Mac、Linux等系统下载。
x86是32位的,所以下载x64的版本。
把压缩包里的 msedgedriver.exe 文件解压出来就行。(回头需要用到这个文件的路径)

2.添加到系统环境变量

建个目录,把两个WebDriver文件放一起,就放在:

  • G:\Python\software\webdriver\chromedriver.exe、
  • G:\Python\software\webdriver\msedgedriver.exe

放好之后,将这个webdriver目录添加到系统环境变量中。
注:现在新的selenium4好像已经不支持在参数中用这个webdriver的路径了,selenium3原来是可以用的。所以建议还是添加到环境变量。

三、代码示例

Selenium用法 主要就4步:

  • 1.创建WebDriver对象 webdriver.Chrome();
  • 2.用WebDriver对象的get方法打开网址;
  • 3.用WebDriver对象的find_element方法去找到网页上你需要的元素,返回WebElement对象(找到对象是重点);
  • 4.对WebElement对象进行操作,一般就是获取对象的内容、填写入内容或者click操作。

以下代码示例用的Chrome浏览器测试,webdriver文件已添加到环境变量;如果没添加的,把driver_path 变量启用一下就行。

这种做搜索引擎站点做测试效果一般,建议用别的站点。反正一开始用的百度,还会有验证出来,所以用 time.sleep()等待了几秒。

注意:以下代码中用的Selenium为Selenium4新版用法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

option = webdriver.ChromeOptions() # Edge浏览器没有option参数,比较麻烦
option.add_experimental_option("detach", True) # 不自动关闭浏览器

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
# 两种模式,第一种:打开浏览器模式(默认为第一种,建议测试时用第一种模式,可以看到效果)
# 第二种:不打开浏览器模式(给option添加以下代码就行)
# option.add_argument('headless')

wd = webdriver.Chrome(options=option)

wd.implicitly_wait(10)

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://cn.bing.com/')

print(wd.title) # 打印网页标题

# 根据id选择元素,返回的就是该元素对应的WebElement对象
# element = wd.find_element_by_id('c') # selenium3写法
element = wd.find_element(By.ID,'sb_form_q')

# 通过该 WebElement对象,就可以对页面元素进行操作了
# 比如输入字符串到 这个 输入框里
# element.send_keys('五四青年节\n')
element.send_keys('五四青年节')

time.sleep(5)

element2 = wd.find_element(By.ID, 'search_icon')
element2.click()
time.sleep(5)

# wd.quit()
  • 本文标题:Python Selenium使用举例
  • 本文作者:HDUZN
  • 创建时间:2022-05-04 11:33:58
  • 本文链接:http://hduzn.cn/2022/05/04/Python-Selenium使用举例/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论