2024年6月2日发(作者:)
selenium自动化测试面试题
1)selenium的工作原理?
① 脚本启动driver
② driver去驱动浏览器作为远程服务器
③ 执行脚本发送请求
④ 服务器解析请求作出相应操作,并返回给客户端(脚本)
(2)selenium自动化页面元素找不到存在异常的原因?
① 元素定位错误
② 页面加载时间过慢,需要查找的元素程序已经完成,单页面还
未加载,此时可以加载页面等待时间
③ 有可能元素包含在iframe或者frame里面,需要切换。
(3)如何去定位属性动态变化的元素?
属性动态变化是指该element没有固定的属性值,只能通过相对位
置定位。
第一种方法:用findelements遍历
第二种方法:通过xpath的
轴 parent / following-sibling / precent-sibling
(4)如何去定位页面上动态加载的元素?
触发动态事件,继而findelement;如果是动态菜单,需要一级
一级的find。
(5)selenium调用js(execute_script),有哪些场景?
① 对input执行输入
② 对富文本框的操作
③ 滚动到指定位置操作
(6)selenium如何处理web弹窗?js弹窗?
需要使用_()
(7)selenium可以处理window弹窗吗?
selenium本身是不可以处理windows弹窗的,但是可以借助AutoIT
小工具来完成对windows弹窗的操作。比如 上传下载附件等
(8)如何在定位元素后高亮元素(以调试为目的)?
使用javascript将元素的border或者背景颜色改成黄色或其他颜
色即可
(9)selenium是否支持桌面应用软件的自动化测试?
不支持。selenium是根据网页元素的属性来确定范围元素的
(10)selenium是否有读取excel文件的库?
没有,需要借助第三方工具。例如Apache PIO插件
(11)selenium是否可以向页面发送鼠标滚轮操作?
不能。
(12)如何在webdriver中调用应用程序?
('url') 或者 te().to('url')
(13)selenium中常见的异常?
NoSuchElementException 找不到页面元素异常
ElementNoInteractac tableException
(14)selenium为什么不推荐使用xpath定位?
selenium使用xpath定位时采用遍历页面的方式,性能指标较差。
另外xpath定位有通过绝对路径定位的,有时会不准确;
而用css选择器定位比较简洁,运行速度更快,通常用于性能要求
严格的场景。
(15)如何判断一个页面上元素是否存在?
法1:用pt 在代码块加上
法2:用elements定义组元素方法 然后根其元素个数
len()<1 存在返回True, 不存在则返回False
法3:结合WebDriverWait和excepted_conditions条件判断(强烈
推荐)
显示等待,每间隔1秒判断一次,30秒超时,存在
返回True,不存在则返回False
(16)如何定位动态元素?
动态元素有两种情况:
一个是属性动态,定位时,若id是动态的,就不要用
id定位,用其他定位元素方法
另一个还是这个元素一会在页面上方,一会在下方,飘
忽不定,定位方法也是一样,根据元素属性定位(元素的tag name属性是不会变
的,动的只是class属性和style属性)
(17)如何通过子元素定位父元素?
通过父元素定位子元素,可以通过二次定位来找到。
第一种:通过子元素定位父元素,selenium提供了parent
方法,但是只能定位到父元素,却不能获取元素属性,也不能操作。
第二种:通过xpath的语法直接定
位。 如.//*[@name="hello"]/.. 两个点代表父级元素。
(18)如何截取一个元素的图片,不要截取全部图片?
首选截取当前页面并自定义保存
然后根据要截取元素图片的属性来获取该元素的坐标和大小
on
然后分别left = on['x']
top = on['y']


发布评论