一、输入内容:send_keys()
#定位输入框
input_box = browser.find_element_by_id('kw')
#输入内容
input_box.send_keys('关键字')
二、点击按钮:click()
#定位搜索按钮
button = browser.find_element_by_id('su')
button.click()
三、清空输入框:clear()
定位输入框
input_box = browser.find_element_by_id('kw')
#清空输入框
input_box.clear()
四、模拟’回车’操作:submit()
#通常应用于提交表单
#例如:搜索框输入内容后的回车操作
submit()
from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://www.baidu.com')
定位输入框 input_box = browser.find_element_by_id(‘kw’)
输入关键词 input_box.send_keys(‘关键字’)
模拟回车操作 input_box.submit()
五、单选框选中
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://news.baidu.com/')
time.sleep(1)
try:
#定位搜索框下面的新闻全文和新闻标题单选项
radio_button = driver.find_elements_by_css_selector(".search-radios>input")
# 定位的一组元素后,返回的是一个列表,这里就循环选中对应的选项
for i in radio_button:
i.click()
print ('选中单选框.')
except Exception as e:
print ('fail',format(e))
六、复选框选中
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://passport.baidu.com/v2/?reg&tt=1529850358050&overseas=undefined&gid=02B2650-6D11-430E-A19D-529F69B9F1CE&tpl=xw&u=http%3A%2F%2Fnews.baidu.com%2F')
time.sleep(1)
try:
#定位 阅读并接受《百度用户协议》及《百度隐私权保护声明》 的多选框
checkbox = driver.find_elements_by_css_selector("#TANGRAM__PSP_3__isAgree")
# 定位的一组元素后,返回的是一个列表,这里就循环选中对应的选项
for i in checkbox:
i.click()
print ('选中多选框')
except Exception as e:
print ('fail',format(e))
七、操作下拉框:Select模块(index)
selenium提供了Select模块,可以直接根据属性或索引定位。
【1】导入select方法:
from selenium.webdriver.support.select import Select
【2】Select模块中的定位方法。
'''1、三种选择某一选项项的方法'''
select_by_index() # 通过索引定位;注意:index索引是从“0”开始。
select_by_value() # 通过value值定位,value标签的属性值。
select_by_visible_text() # 通过文本值定位,即显示在下拉框的值。
'''2、三种返回options信息的方法'''
options # 返回select元素所有的options
all_selected_options # 返回select元素中所有已选中的选项
first_selected_options # 返回select元素中选中的第一个选项
'''3、四种取消选中项的方法'''
deselect_all # 取消全部的已选择项
deselect_by_index # 取消已选中的索引项
deselect_by_value # 取消已选中的value值
deselect_by_visible_text # 取消已选中的文本值
实例
'''这个是我百度首页搜索设置里面的一个下拉框html代码'''
html = '''
<select name="NR" id="nr">
<option value="10" selected="">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
</select>
'''
# coding=utf-8
from selenium import webdriver
from selenium.webdriver.support.select import Select
# 初始化
driver = webdriver.Chrome()
......
'''如果我们需要选择:50条,那么可以用下面的三种方法
先选中输入框元素,然后在选择对应选项'''
# 根据索引选择
Select(driver.find_element_by_name("NR")).select_by_index("2")
# 根据value值选择
Select(driver.find_element_by_name("NR")).select_by_value("50")
# 根据文本值选择
Select(driver.find_element_by_name("NR")).select_by_visible_text("每页显示50条")
driver.quit()
八、多个浏览器窗口切换
#切换浏览器窗口的时候将会用到的三个方法:
current_window_handle:获取当前窗口的句柄。
window_handles:返回当前浏览器的所有窗口的句柄。
switch_to_window():用于切换到对应的窗口。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com/")
# 获取当前窗口句柄
seacher_windows = driver.current_window_handle
# 跳转新页面
driver.find_element_by_xpath('//*[@id="block1_server"]/div[2]/ul/li[1]/div/div[1]/a[3]').click()
all_handles = driver.window_handles
#回到首页
for handle in all_handles:
if handle != seacher_windows:
driver.switch_to.window(seacher_windows)