实践问题总结(一)

来源:互联网 发布:战国之怒进阶数据 编辑:程序博客网 时间:2024/05/29 06:47

~ 今日打卡!

这两天一直在忙别的事情,都没有时间更新博客了。今天把事情处理完,马上来梳理一下这段时间自动化测试实战下来的问题及解决办法。实战用的系统是公司的项目,所以不便截图,只能大概描述一下问题,请见谅。

1. 系统登录的时候有一个bug,登录账号与密码都正确,但会弹出“登录失败”提示窗,点击确认后,系统自动跳转到主界面(实际是登录成功的)。而且!这个提示窗不是每次都会出现!

转化场景:自动化脚本如何解决不确定是否会弹出的弹窗

方法:判断弹窗是否出现再进行操作,避免弹窗没弹出抛出异常,代码如下:

from selenium.webdriver.support import expected_conditions as EC

result = EC.alert_is_present()(driver)

if result:

    print result.text

    result.accept()

else:

print "alert 未弹出!"

2. 定位到一个元素,使用.click()方法操作该元素,无效。

在网上查到的很多都说是因为定位不到元素。后来用F12看了一下源代码。发现onclick属性是写在这个元素里,而是写在了它的父元素里。

方法:定位到父元素,用.click()方法操作父元素实现页面跳转

3. 做参数化脚本的时候,关于元素定位的参数化。使用find_element_by_XX(“属性值”)的方式,把属性值放在excel文档里做参数化。但问题来了,如果源码改了某个元素的属性,或者直接去除了用来定位的属性,那脚本和数据文件都要修改啊,怎么搞?

方法:使用 Find_element(‘属性名’,‘属性值’)/Find_elements(‘属性名’,‘属性值’)方法定位元素。

用这两种方法定位元素,需导入by模块(from selenium.webdriver.common.by import By),然后在csv文件或字典中保存元素的属性名和属性值,维护脚本时只需修改csv文件或字典内容就好了。

 

原创粉丝点击