本文章内容参考了白夜黑羽教python的教程,出处为http://www.python3.vip/doc/tutorial/selenium/01/

感谢上方大佬!

所整理的正文如下:

首先,在搭建好Selenium+Python3的环境基础上,测试要点如下:

1.切入html内嵌的html中(测试页面http://f.python3.vip/webauto/sample2.html

 1 #先根据源码中内嵌html的属性值(id或name),进入这个内嵌的html,进行操作
 2 wd.switch_to.frame('frame1')
 3
 4 #进入后的操作,例如根据class name 选择元素,返回一个列表
 5 elements = wd.find_elements_by_class_name('plant')
 6 for element in elements:
 7     print(element.text)
 8
 9 #操作结束后要返回到主html,进行其他操作
10 wd.switch_to.default_content()
11 wd.find_element_by_id('outerbutton').click()
12 wd.quit()

2.点击主html内的链接,切换到新的窗口(测试页面http://f.python3.vip/webauto/sample3.html

#首先在前面要有一个click操作,打开一个新的页面
for handle in wd.window_handles:
    wd.switch_to.window(handle)
    if 'Bing' in wd.title:
        break

#wd.window_handles包含了打开的窗口中所有网页的标号(类似ID的)信息,称为句柄
#wd.switch_to.window(handle)是进入每一个窗口,检查其属性(可以是标题栏,地址栏)
#通过判断找到所需窗口后,跳出循环,然后在for循环外,对这个所需窗口进行操作

#返回主html的方法1.如同刚才,用handle判断回去;2.事先保存主html的句柄,最后返回

#事先保存
mainWindow = wd.current_window_handle
#最后返回
wd.switch_to.window(mainWindow)

3.选择框的点击--radio框(测试页面http://f.python3.vip/webauto/test2.html

# 获取当前选中的元素(缺省选择)
element = wd.find_element_by_css_selector('#s_radio input[checked=checked]')
print('当前选中的是: ' + element.get_attribute('value'))

#点击选小雷老师
wd.find_element_by_css_selector('#s_radio input[value="小雷老师"]').click()


#源码中checked="checked"表示这个是默认选项

4.选择框的点击--checkbox框

# 先把已经选中的选项全部点击一下,确保所有选项都是未选状态
elements = wd.find_elements_by_css_selector('#s_checkbox input[checked="checked"]')

for element in elements:
    element.click()

# 再点小雷老师
wd.find_element_by_css_selector("#s_checkbox input[value='小雷老师']").click()

5.选择框的点击--select框(有专门的类提供操作方法)

"""Select单选框"""
#不管原来选的是什么,直接用Select方法选择即可。例如,选择示例里面的小雷老师
# 导入Select类
from selenium.webdriver.support.ui import Select
# 创建Select对象
select = Select(wd.find_element_by_id("ss_single"))
# 通过 Select 对象选中小雷老师
select.select_by_visible_text("小雷老师")

"""Select多选框"""
#要选中某几个选项,要注意去掉原来已经选中的选项。例如,我们选择示例多选框中的 小雷老师 和 小凯老师
# 导入Select类
from selenium.webdriver.support.ui import Select
# 创建Select对象
select = Select(wd.find_element_by_id("ss_multi"))
# 清除所有 已经选中 的选项
select.deselect_all()
# 选择小雷老师 和 小凯老师
select.select_by_visible_text("小雷老师")
select.select_by_visible_text("小凯老师")

"""Select主要方法及简单说明"""
#根据选项的 value属性值 ,选择元素。比如<option value="foo">Bar</option>
s.select_by_value('foo')
#根据选项的 次序 (从1开始),选择元素
select_by_index
#根据选项的 可见文本 ,选择元素。比如<option value="foo">Bar</option>
select_by_visible_text('Bar'#根据选项的value属性值, 去除 选中元素
deselect_by_value
#根据选项的次序,去除 选中元素
deselect_by_index
#根据选项的可见文本,去除 选中元素
deselect_by_visible_text
#去除 选中所有元素
deselect_al
12-15 12:05