selenium安装和Chromedriver

Selenium

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium
可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏

下载

安装

可以解决,以下错误问题

Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

首先根据Chrome版本进行下载chromedriver驱动,

Chrome版本查看路径

[菜单 ] -> [帮助] -> [关于Google Chrome]

Chrome版本查看路径

如下图所示,我的版本为版本 77.0.3865.90(正式版本) (64 位)

Chrome版本

然后到ChromeDriver Mirror淘宝镜像地址进行下载,以我的版本为例搜索77.0.3865然后选择77.0.3865.40即可,一般都是选择对应chrome版本较新的即可。

npm淘宝镜像

(以Win7为例)接着下载对应版本的chromedriver驱动chromedriver.exe放到python.exe 同级文件夹即可,如

python path 是 C:\Users\Administrator\AppData\Local\Programs\Python\Python37

python dir

最后尝试代码以下代码,若是可以正常的打开网站即为安装成功。

1
2
3
4
5
6
7
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://nobige.cn')
print(driver.title)

driver.quit()

错误

Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

解决办法参考,安装

element is not attached to the page document

原因:页面未完全加载完成(元素丢失),解决办法,刷新页面后延迟下或者重新获取

1
2
3
# 刷新
driver.refresh()
time.sleep(5)

方法

Selenium提供了下列的方法

  • 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

一次查找多个元素 (这些方法会返回一个list列表):

  • 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
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
获取标签属性
get_attribute
get_attribute("class")

填写内容
find_element_by_id("username").send_keys("some text")

下拉或多选
清除所有选定的条目通过索引,值,文本名
deselect_all
deselect_by_index
deselect_by_value
deselect_by_visible_text

选择下拉或多选通过索引,值,文本名
select_by_index
select_by_value
select_by_visible_text

返回属于此选择标记的所有选定选项的列表
all_selected_options

此选择标记中的第一个选定选项(或正常选择中的当前选定选项)
first_selected_option

返回属于此选择标记的所有选项的列表
options

单击
click()

双击
double_click

提交
element.submit()

在不同的窗口和框架之间移动
driver.switch_to_window("windowName")

弹出对话框
alert = driver.switch_to_alert()

操作Cookies,增,查,删,删除全部
add_cookie(cookie)
get_cookies()
delete_cookie
delete_all_cookies

控制浏览器历史前进
forward()

控制浏览器历史后退
back()

刷新
refresh

关闭页面
close()

最大化 Web 驱动程序正在使用的当前窗口
maximize_window
最小化 Web 驱动程序正在使用的当前窗口
minimize_window

将当前窗口的屏幕截图保存到 PNG 图像文件中。
get_screenshot_as_file(文件名)
save_screenshot

获取当前窗口的屏幕截图作为 base64 编码字符串
get_screenshot_as_base64

获取当前URL
current_url

参考