一、常见面试题
- selenium/appium定位方法有哪几种?
- 定位不到元素是什么原因导致?
- selenium中隐藏元素如何定位?
- 如何定位动态元素?
- 如何通过子元素定位父元素?
- 如何判断一个页面上元素是否存在
- 有的元素已经加载到页面上,但是却定位失败,如何解决?
- 一个元素明明定位到了,点击无效(也不报异常),如何解决?
1.1、技术点分析
类型 | 面试问题 |
---|---|
元素定位 | selenium定位方式有哪几种? |
元素定位不到 | 定位不到元素是什么原因导致? |
如何定位动态元素 | |
有的元素已经加载了,但是却定位不到,怎么解决? | |
元素操作 | 一个元素明明定位到了,但是点击无效(也不报错),如何解决 |
selenium中隐藏的元素如何定位? | |
如果产品中总数出现弹窗,导致用例执行失败,应该如何解决? | |
如何获取toast中的消息提示? | |
元素是否存在 | 如何判断一个元素是否存在? |
解题思路
2.1、元素是否存在?
解决方案:通过产看当前页面dom,搜索元素是否存在。如果在执行过程中,可以打印page_source,来判断元素是否存在
2.2、元素定位方式有哪些?
- selenium定位方式有哪几种?
八种定位方式:id、name、link_text、partial_link_text、tag_name、css_selector、xpath、class_name;
- 如何通过子元素定位父元素?
编写XPATH表达式
2.3、一个元素明明已经定位到了,点击却无效(也不报错),如何解决?
原因:异步加载导致
解决方法:循环点击按钮,直到点击生效为止
突然的弹窗,导致元素被遮挡
通过黑名单机制,异常处理。
2.4、selenium中隐藏的元素如何定位操作?
隐藏的元素可以直接定位,但是无法直接点击或交互
解决方法:使用js执行交互操作
2.5、如何获取toast中的消息提示?
toast闪过太快,不好定位
解决方法:可使用xpath定位
2.5、元素定位不到
原因 | 解决方案 |
---|---|
定位不正确 | 先调试正确后在使用 |
页面还未加载完成 | 添加等待验证,使用显示或隐式等待验证 |
存在动态ID | 使用CSS_SELECTOR或XPATH的相对定位 |
页面有frame | 切换到frame后定位 |
页面切换到新窗口 | 切换到对应的窗口进行定位 |