python_selenium 自动化测试小记

目录

1.弹出框的处理

2.日历控件(只能选择,不能输入),或者针对readonly属性如何进行赋值?

3.切换焦点在新打开窗口页面

4.浏览器最大化(全屏)

5.Select下拉框(省市区三级联动)

6.Submit表单提交

7.Radio

8.验证码识别

9.使用键盘上的快捷键

10.Web selenium点击的href,点击打开失败

11.时间等待

12.页面窗口切换


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])  #替换到 最新的页面

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值