测试面试问题总结(二):Python+Selenium面试相关

1.Python+Selenium常见的定位(查找)web元素的方法

  • 通过id定位元素:find_element_by_id(“id_vaule”)
  • 通过name定位元素:find_element_by_name(“name_vaule”)
  • 通过tag_name定位元素:find_element_by_tag_name(“tag_name_vaule”)
  • 通过class_name定位元素:find_element_by_class_name(“class_name”)
  • 通过css定位元素:find_element_by_css_selector();用css定位是比较灵活的
  • 通过xpath定位元素:find_element_by_xpath(“xpath”)
  • 通过link定位:find_element_by_link_text(“text_vaule”)或者find_element_by_partial_link_text()

2.selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

  • 当网速不好的情况下,使用合适的等待时间
  • 被点击的元素一定要占一定的空间,因为selenium默认会去点这个元素的中心点,不占空间的元素算不出来中心点;
  • 被点击的元素不能被其他元素遮挡;
  • 被点击的元素不能在viewport之外,也就是说如果元素必须是可见的或者通过滚动条操作使得元素可见;
  • 判断元素是否是可以被点击的

3.用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

  • 尽量使用显式等待
  • 尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰

4.显式等待、隐式等待、强制等待的区别:
显式等待WebDriverWait()、隐式等待implicitly_wait()、强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别

  • sleep(): 强制等待,设置固定休眠时间。后脚本的执行过程中执行 sleep()后线程休眠,而另外两种线程不休眠。
  • implicitly_wait():隐式等待,是设置的全局等待。设置等待时间,是对页面中的所有元素设置加载时间,即整个页面的加载时间;如果超出了设置时间的则抛出异常。隐式等待可以理解成在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。
  • WebDriverWait():显式等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException。
    注意:显示等待是针对某一个元素进行相关等待判定;
    隐式等待不针对某一个元素进行等待,是全局元素等待。

5.自动化执行策略

  • 每日执行:比如每天晚上在主干上执行一次
  • 版本发布前执行:手动测试完成后,自动化脚本执行一次

6.自动化脚本运行失败的主要原因:

(1) 测试环境问题(比如,测试环境被前一个失败脚本破坏而未还原或测试数据被其它人破坏)

  • 解决办法:在测试脚本的代码结构中加入足够的系统恢复代码来解决,提供独立的测试环境供脚本执行团队使用

(2) 脚本错误

  • 解决办法:在测试脚本中加入丰富的脚本失败的定位信息

(3)被测目标出现bug
7.自动化测试中常用的断言有哪些?
AssertEqual
AssertNotEqual
AssertTrue
AssertNotTrue
我在verify的时候用得比较多的是:result = bool(actual == expectedl)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值