自动化测试经典面试题 您所在的位置:网站首页 网页控件加载不出来怎么回事 自动化测试经典面试题

自动化测试经典面试题

2023-06-08 02:23| 来源: 网络整理| 查看: 265

在这里插入图片描述

元素定位常见的面试相关问题 一、元素定位1、Selenium/Appium定位方法有几种?分别是?2、如何通过子元素定位父元素 二、元素定位不到1、定位不到元素是什么原因导致的?2、如何定位动态元素3、有的元素就加载页面上,但是你却定位不到,怎么解决 三、元素操作1、一个元素明明定位到了,点击无效(也没报错),如何解决?2、selenium 中隐藏元素如何定位,操作?3、如果产品总是出现弹窗,导致用例无法执行,应该如何解决?(未完)4、如何获取app中的toast消息提示? 四、元素是否在页面存在1、如何判断一个页面上元素是否存在?

一、元素定位 1、Selenium/Appium定位方法有几种?分别是?

selenium:

xpath、css、id、name、class_name、tag_name、link_text、partail_link_text

Appium:

xpath、css、id(通过身份标识 id 查找元素,对应的是resource-id)、accessibility_id(通过 accessibility_id查找元素,对应的是content-desc)

2、如何通过子元素定位父元素

获取当前节点的父节点://input[@name="wd"]/.. 获取当前节点的爷爷节点://input[@name="wd"]/../..

二、元素定位不到 1、定位不到元素是什么原因导致的?

原因:元素定位表达式写错了(可能是单词、格式写错了) 解决方案:检查单词、元素定位表达式。

原因:元素定位写错了,报NoSushElementException(在elements中搜索对应的元素,发现没有搜索到,则证明定位写错了) 解决方案:检查写一个正确的定位

原因:由于页面加载很快,元素还未加载出来就执行了find_element操作 debug思路:1、添加一个强制等待,确认页面加载完成之后,再执行find操作,如果此时用例通过,代表元素定位没有问题。否则是别的原因。 解决方法:使用隐式等待和显性等待

原因:因为id是动态的,一直是变化的,所以此时使用ID定位就会非常不稳定 解决方案:检查每次使用的这个元素的id是否一致;使用其他的定位方式,xpath或者css的相对定位

原因:排除以上情况后,还有可能性为iframe debug思路:1、查看浏览器的elements页面中输入iframe,确认页面中是否含有iframe, 2、然后鼠标悬浮到iframe元素上,检查要定位元素是否在iframe页面中,如果是的话,那么定位之前需要切换iframe的操作。driver.switch_to.frame()

原因:打开了新窗口,并且定位的是新窗口的元素 debug思路:检查是否打开了新的页面 解决方案:如果要定位新窗口的元素,那么需要先切换到对应的页面再去定位 windows=driver.window_handles driver.switch_to.window(windows[-1])

2、如何定位动态元素

检查每次使用的这个元素的id是否一致,确定是否是否是动态元素; 如果是动态元素,使用其他的定位方式,xpath或者css的相对定位

3、有的元素就加载页面上,但是你却定位不到,怎么解决

同1

三、元素操作 1、一个元素明明定位到了,点击无效(也没报错),如何解决?

原因:异步加载js导致点击事件无效 解决方案:自己封装一个显性等待,循环点击该按钮,直到生效为止

2、selenium 中隐藏元素如何定位,操作?

原因:隐藏元素可以直接定位,但是无法直接点击或者交互 解决方案:使用js执行交互操作

driver.excute_script("document.querySelector(‘#kw’).value=‘python’ "):修改文本框文本信息 driver.excute_script(“document.querySelector(‘#kw’).value”):获取文本框文本信息 driver.excute_script(“document.querySelector(‘#su’).click()”):点击操作 driver.excute_script(“document.querySelector(‘#train_date’).value”):获取时间控件的信息,并返回出来

3、如果产品总是出现弹窗,导致用例无法执行,应该如何解决?(未完)

在做app自动化测试过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等) 弹框不是 BUG(UI 界面提示,警告的作用) 在这里插入图片描述 解决方法:通过添加黑名单,解决异常处理;采用装饰器 对原有函数的功能增强 不改变原有函数的逻辑 使代码更简洁、易维护 详细文章介绍:https://blog.csdn.net/YZL40514131/article/details/130543238?spm=1001.2014.3001.5501

4、如何获取app中的toast消息提示?

原因:toast闪过太快,不好定位 解决方案:直接通过xpath定位结合隐式等待获取《特殊控件toast识别》 appium使用uiautomator底层的机制来分析抓取toast,并且把toast放到控件树里面,但本身并不属于控件。 方式一: self.driver.find_element(AppiumBy.XPATH,"//*[contains(@text,'popup menu')]") 方式二: self.driver.find_element(AppiumBy.XPATH,"//android.widget.Toast[@class='android.widget.Toast']")

四、元素是否在页面存在 1、如何判断一个页面上元素是否存在?

解决方案:通过查看当前页面dom,搜索该元素是否存在。如果是脚本自动化运行过程中,应该通过打印page_source,即可了解到该元素在运行过程中是否存在



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有