三、常用的基本操作 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) break (4)属性is_multiple:记录是否允许多选的状态值,属性值是一个布尔值,True代表允许多选,False代表不允许。 案例:Selenium资料02-seleniumday05.zip解压缩 2-seleniumday05(for student)day0502demodemo01.html复制到C:wampwww里,使用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()