selenium,用的基本操作(8)

三、常用的基本操作
1.打开网页:driver.get("url")
2.退出浏览器(关闭所有网页):driver.quit()
3.定位到元素后的元素基本操作:
(1)元素对象.click() ---点击按钮、超级链接、图片、单选按钮、复选框等。
(2)元素对象.send_keys("xxx") ---向文本框输入(追加式输入)。
(3)元素对象.clear() ---清空文本框内容。
4.下拉列表如果是select标记的话,不能点击下拉列表后点击选项来选择它,需要按照如下的流程来选择:
(1)导入selenium为select标记单独准备的类Select。
from selenium.webdriver.support.select import Select
(2)定位到select标记的元素:与普通元素定位没有差别。
语法:变量1=driver.find_element(By.XXX,"xxx")
示例:
xia=driver.find_element(By.ID,"category")
(3)实例化Select对象,把第(2)步骤所定位到的页面元素对象作为该类构造函数的参数传入。
语法:变量2=Select(变量1)
示例:
# 实例化Select对象
s1=Select(xia)
(4)调用select开头的函数来选择一个选项。
语法一:变量2.select_by_visible_text("选项的完整文本")
示例1:
# <option value='xx'>充值卡</option>
s1.select_by_visible_text("充值卡")
语法二:变量2.select_by_value("选项的value属性值")
示例:
# <option value="8"> 耳机</option>
s1.select_by_value("8")
语法三:变量2.select_by_index(索引号)
注意:索引号从0开始编号。
示例:
s1.select_by_index(5)#选择第6个选项

练习:demo5002中继续书写代码,点击“高级搜索”,选择品牌下拉列表里的“联想”选项,选择扩展选项里的“精品手机”选项。

5.补充:Select类里其他属性和函数---不是重点,了解!
n=driver.find_element(By.ID,"nation")
ns=Select(n)
(1)取消选项的函数:针对多选的那种下拉列表(有multiple属性的那个select标记的元素)来使用。
语法一:
ns.deselect_all()#取消所有选项的选中状态
语法二:
ns.deselect_by_visible_text("满族")
语法三:
ns.deselect_by_value("汉族")
语法四:
ns.deselect_by_index(3)#取消第4个选项
(2)属性first_selected_option:记录第一个被选中的选项,属性值是option标记的页面元素对象,如果想获得此选项的文本,还需要再对该对象获得text属性值。
示例:
c=driver.find_element(By.ID,"city")
cs=Select(c)
# 打印输出默认选项的文本
print(cs.first_selected_option.text)#上海
(3)属性options:记录所有备选项(包括已选中的和未选中的),属性值是list,list里是每一个选项的页面元素对象,如果想获得每个选项的文本,还需要再对每个页面元素对象获得text属性值。
示例:# 测试需求:选择文本中包含“回”的选项
for o in ns.options:
if "" in o.text:
o.click()#或ns.select_by_visible_text(o.text)
break4)属性is_multiple:记录是否允许多选的状态值,属性值是一个布尔值,True代表允许多选,False代表不允许。


案例:Selenium资料\02-seleniumday05.zip解压缩\02-seleniumday05(for student)\day0502demo\demo01.html复制到C:\wamp\www里,使用Firefox访问http://localhost/demo01.html

5.注意事项:有些网页里看起来像是下拉列表的元素,其实不是select标记的,那么就不能封装为Select类型的对象,需要按照手工操作的流程来实现自动化测试,比如点击它。

6.弹出提示信息框的操作:
(1)切换到弹出框,获得弹出框类型的对象(Alert类对象实例)。
语法:变量=driver.switch_to.alert
示例:
a1=driver.switch_to.alert
(2)获得弹出框里的文本:使用Alert类的属性text来获得。
注意:text后没有小括号,因为不是函数,是一个属性。
示例:
print(a1.text)
(3)点击确定或取消等按钮来关闭弹出框:调用Alert类里的无参的accept函数或dismiss函数来分别点击确定或取消按钮。
示例:
a1.accept() 或 a1.dismiss()

 

posted @ 2020-12-18 13:06  藤上小冬瓜  阅读(154)  评论(0编辑  收藏  举报