例1:
首先,自己编写一个html,包含3个复选框,如下图:
HTML代码如下:
1 <html>
2 <head>
3 <meta http-equiv="content-type" content="text/html;charset=utf-8" />
4 <title>checkbox</title>
5 </head>
6 <body>
7 <div>
8 <label>checkbox1</label>
9 <input type="checkbox" id="c1" />
10 </div>
11 <div>
12 <label>checkbox2</label>
13 <input type="checkbox" id="c2" />
14 </div>
15 <div>
16 <label>checkbox2</label>
17 <input type="checkbox" id="c3" />
18 </div>
19 </body>
20 </html>
下面,来勾选这3个复选框
与定位单个元素的方法类似,只在element后加s,即可定位一组元素,例如:find_elements_by_id()
1 from selenium import webdriver
2 import time, os
3
4 driver = webdriver.Chrome()
5 # path.abspath()方法用于获取当前路径下的文件
6 file_path = 'file:///' + os.path.abspath('checkbox.html')
7 driver.get(file_path)
8
9 checkboxes = driver.find_elements_by_xpath("//input[@type='checkbox']") # 找到复选框
10
11 for chekbox in checkboxes: # 遍历每一个复选框,并点击勾选
12 chekbox.click()
13 time.sleep(1)
14
15
也可以按如下方式查找并勾选元素:
inputs = driver.find_elements_by_tag_name('input')
for i in inputs:
if i.get_attribute('type') == 'checkbox':
i.click()
time.sleep(1)
另外,还可以进行其它操作:
print(len(checkboxes)) # 打印复选框的个数
driver.find_elements_by_xpath("//input[@type='checkbox']").pop().click() # 将最后一个复选框的勾选去掉
pop()方法,用于获取列表中的某一个元素,默认为最后一个,并返回该元素的值。若想勾选一组元素中的某一个元素,可按如下方法:
- pop(0) 第一个
- pop(1) 第二个
- ....
- pop()或pop(-1) 最后一个
例2:
打印百度搜索结果
1 from selenium import webdriver
2 import time
3
4 driver = webdriver.Chrome()
5 driver.get('http://www.baidu.com')
6
7 driver.find_element_by_id('kw').send_keys('selenium')
8 driver.find_element_by_id('su').click()
9 time.sleep(2)
10
11 divs = driver.find_elements_by_xpath('//div[@tpl="se_com_default"]/h3/a') # 定位一组元素
12
13 print(len(divs)) # 计算匹配结果个数
14
15 for div in divs: # 循环遍历出每一条搜索结果的标题
16 print(div.text)
打印结果如下:
7
Selenium automates browsers. That's it!
selenium库的基本使用 - 简书
selenium中文网 | selenium安装、selenium使用、selenium中文...
Selenium - 知乎
Selenium with Python — Selenium Python Bindings 2...
以后再有人问你selenium是什么,你就把这篇文章给他 - TestingGDR...
Selenium.com