Selenium自动化测试—1

记录一下最近学习自动化测试遇到的一些问题
问题1:
在元素定位中,可以根据属性class_name来定位。但是当class_name的属性值中存在空格,如果把属性全部值复制过来,以此定位,便会出现定位失败的情况。
原因:
这是因为class属性中间的的空格并不是空字符串,而是间隔符号。表示,这个元素的class属性有多个属性值。(注意,name、id等属性并没有如此特别的情况)。
解决办法:
(1)、可以取其中某一个的一个就行了,当然此属性值要求在此页面上是唯一的。
(2)、如果属性值在此页面上不唯一,可以用Xpath或CSS定位方法,通过定位class_name进行定位。
例如,在登录百度网盘时,部分代码如下:

# driver.find_element_by_class_name('pass-text-input').send_keys('264968731@qq.com')

driver.find_element_by_xpath('//input[@ @class = "pass-text-input pass-text-input-userName"]').send_keys('264968731@qq.com')

driver.find_element_by_css_selector('.pass-text-input .pass-text-input-password').send_keys('264968731@qq.com')

问题2:
通过元素定位方法登录126邮箱时,元素的定位寻找都是正确的,但是怎么都成功登录。
原因:
在126的登录界面中,存在iframe框架(百度的结果)
解决办法:
只要加上这样一句代码即可:

driver.switch_to_frame("x-URS-iframe")#登录页面存在iframe框架

问题3:
在用unittest单元测试框架,写测试用例时,文件(文件夹)的命名以Python中的保留字命名了。出现了如此低级的错误,导致当时找BUG找到崩溃。记得,当时就是用unittest命名文件夹了。

问题4:
在生成测试报告时,给测试报告自动命名时,文件的命名违反了windows下的规则。错误代码如下:

now = time.strftime('%Y-%m-%d %H:%M:%S')
fp = open('../report/'+now+'report.html','wb')

错误分析:在时分秒之间的冒号是英文状态下的冒号,违反了windows下的文件命名规则。

补充:
windows下的文件命名规则:
<1>文件名除了开头之外任何地方都可以使用空格。
<2>文件名中不能有下列符号:
“?”、“、”、“╲”、“*”、““”、“”“、“<”、“>”、“|”
更改代码:

now = time.strftime('%Y-%m-%d %H_%M_%S')#文件名中允许使用空格,但不允许使用下列字符(英文输入法状态):< > / \ | : " * ?;
#fp = open('../report/'+now+'report.html','wb')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值