目录
2.日历控件(只能选择,不能输入),或者针对readonly属性如何进行赋值?
10.Web selenium点击的href,点击打开失败
1.弹出框的处理
第一种方案:点击【确定】按钮: driver.switch_to.alert .accept()
第二种方案:点击【取消】按钮: driver.switch_to.alert .dismiss()
第三种方案:获取弹出框文本: driver.switch_to.alert.text
注:显示等待alert出现:
(WebDriverWait(driver,10,0.5).until(expected_conditions.alert_is_present()))
2.日历控件(只能选择,不能输入),或者针对readonly属性如何进行赋值?
S1:先删除日期控件的“readonly”只读属性,方便text赋值
script=’document.getElementById(“data”).removeAttribute(“readonly”)’
driver.execute_script(script)
S2:清空输入框的值
driver.find_element_by_id(“data”).clear()
S3:在生日框中,输入生日
driver.find_element_by_id(“data”).send_keys(“2020-10-20”)
3.切换焦点在新打开窗口页面
handleList=self.driver.window_handles #获取所有的句柄页面
self.driver.switch_to.window(handleList[-1]) #替换到 最新的页面
4.浏览器最大化(全屏)
driver.maximize_window()
5.Select下拉框(省市区三级联动)
element=self.driver.find_elements_by_tag_name("select")
Select(element[0]).select_by_visible_text("河南省")
Select(element[1]).select_by_visible_text("郑州市")
Select(element[2]).select_by_visible_text("金水区")
注:select_by_value:属性value 的值
select_by_index:第几个选项
select_by_visible_text:选项的文本值(text)
6.Submit表单提交
self.driver.find_element_by_id("password").submit()
通过submit 提交表单中任意一个元素,就提交了整个表单,代替按钮click事件
7.Radio
第一种:根据value来定位属性,当然 value=’男’ 这个属性值当前页面有且只有一个;
driver.find_element_by_css_selector(”[value='男']”).click()
第二种:如果多个,可根据find_elements_by_id(“xb”)[2].click()
driver.find_elements_by_id("xb")[2].click()
8.验证码识别
1.给出相应的等待时间,人工去输入
2.测试环境取消 验证码的验证
3.创建万能验证码,供测试人员使用
9.使用键盘上的快捷键
问题:输入框输入新的内容,之前的内容clear() 清除不掉,如何解决?
S1:全选:driver.find_element_by_class_name("spinbox-input").send_keys(Keys.CONTROL,'a')
S2:删除:driver.find_element_by_class_name("spinbox-input").send_keys(Keys.BACK_SPACE)
S3:写入新的文本: driver.find_element_by_class_name("spinbox-input").send_keys("200")
10.Web selenium点击<a>的href,点击打开失败
S1:获取<a>的href值:
href_val=driver.find_elements_by_css_selector(".btn-block")[1].get_attribute("href")
S2:打开href的值:
driver.get(href_val)
11.时间等待
1.隐式等待
driver.implicitly_wait(10) //10秒
优点: 1智能等待页面的刷新
2用于判断下一行代码需要等待多久去执行,减少时间浪费
3只需要初始化时写一次,全局有效
缺点: 1 特殊情况不起作用(比如:点击确认按钮,弹出框出来后,页面没有刷新,所以此时的隐式等待无效)
2.显示等待(只针对某一个特定条件去等待)
//WebDriverWait(driver,最大等待时间,每隔多长时间检查一次).until(条件)
//弹出框出现WebDriverWait(driver,10,0.5).until(expected_conditions.alert_is_present())
3.强制等待
time.sleep(3)://3秒
12.页面窗口切换
handleList=self.driver.window_handles #获取所有的句柄页面
self.driver.switch_to.window(handleList[-1]) #替换到 最新的页面