25个经典Selenium自动化面试题,赶紧收藏

25个经典Selenium自动化面试题,赶紧收藏(1)selenium的工作原理?①脚本启动driver②driver去驱动浏览器作为远程服务器③执行脚本发送请求④服务器解析请求作出相应操作,并返回给客户端(脚本)(2)selenium自动化页面元素找不到存在异常的原因?①元素定位错误②页面加载时间过慢,需要查找的元素程序已经完成,单页面还未加载,此时可以加载页面等待时间③有可能元素包含在iframe或…

大家好,又见面了,我是你们的朋友全栈君。

(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弹窗?

       需要使用driver.switch_to.alert()

(7)selenium可以处理window弹窗吗?

       selenium本身是不可以处理windows弹窗的,但是可以借助AutoIT小工具来完成对windows弹窗的操作。比如 上传下载附件等

(8)如何在定位元素后高亮元素(以调试为目的)?

        使用javascript将元素的border或者背景颜色改成黄色或其他颜色即可

(9)selenium是否支持桌面应用软件的自动化测试?

        不支持。selenium是根据网页元素的属性来确定范围元素的

(10)selenium是否有读取excel文件的库?

        没有,需要借助第三方工具。例如Apache PIO插件

(11)selenium是否可以向页面发送鼠标滚轮操作?

        不能。

(12)如何在webdriver中调用应用程序?

       driver.get(‘url’)  或者 driver.navigate().to(‘url’)

(13)selenium中常见的异常?

       NoSuchElementException    找不到页面元素异常

       ElementNoInteractac tableException

(14)selenium为什么不推荐使用xpath定位?

       selenium使用xpath定位时采用遍历页面的方式,性能指标较差。另外xpath定位有通过绝对路径定位的,有时会不准确;

       而用css选择器定位比较简洁,运行速度更快,通常用于性能要求严格的场景。

(15)如何判断一个页面上元素是否存在?

       法1:用try…except  在代码块加上

       法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)如何截取一个元素的图片,不要截取全部图片?

       首选截取当前页面并自定义保存

       然后根据要截取元素图片的属性来获取该元素的坐标和大小 ele.location    ele.size

       然后分别left = ele.location[‘x’]

                     top = ele.location[‘y’]

                     right = ele.location[‘x’] + ele.size[‘width’]

                     bottom = ele.location[‘y’] + ele.size[‘height’]

       获取该元素的图片的坐标大小

       最后,再次打开刚开始保存的,通过image类中的crop方法(相当于拷贝该元素的一个矩形区域),然后做保存操作就可以了。

(19)一个元素明明定位了,点击无效(也没报错),如何解决?

       使用js点击,selenium有时候点击元素时会失效

       #  js 点击

       js = ‘document.getElementById(‘baidu’).click()’

       driver.execute_script(js)

(20)如何提高脚本的稳定性?

       首先只要页面一直没变过,说明定位方法是没问题的。

       优化方向:① 自己写相对路径,多用id为节点查找,少用右键复制xpath,那种不稳定。

                         ② 第二个影响因素就是等待了,sleep等待尽量少用(影响执行时间)

                         ③ 定位元素方法重新封装,结合WebDriverWait和excepted_conditions判断元素方法,自己封装一套定位元素方法

(21)提高selenium脚本的执行速度方式?

       减少不必要的操作。

       页面加载过多并且不影响测试,可设置超时时间中断页面加载。

       设置等待时间时,可以sleep()固定的时间,检测到元素出现后中断等待也可以提高速度。

       配置testNG实现多线程,在编写测试用例时,一定要实现松耦合,在服务器允许的情况下尽量设置多线程运行,提高执行速度。

(22)selenium自动化时,在平时遇到过哪些问题?如何解决的?

       比如动态id  、有iframe的情况、没加等待等因素

(23)selenium中隐藏元素定位,你该如何做?

       隐藏元素可以正常定位到,只是不能操作(定位元素和操作元素是两码事,操作元素是指click 、clear 、send_keys等这些方法)。我们可以用js来操作隐藏元素。js和selenium不同,只有页面上有的元素(在dom里面的)都能正常操作。

(24)上传图片的几种方式?

       send_keys和AutoIT工具实现.

(25)截图应当怎么操作?

       driver.get_screenshot_as_file(‘C:\test.jpg’)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151461.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python激活码在线【2021最新】

    (python激活码在线)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

  • POE交换机通用吗_工业级交换机

    POE交换机通用吗_工业级交换机目前PoE交换机需要量大,那一定有些人疑惑PoE交换机能够替代一般工业交换机应用吗?下面为大伙儿介绍下,一起来瞧瞧吧。一般状况下是还可以的,具备IEEE802.3af或是IEEE802.3at协议书的POE交换机,输出电压时会有一个小电流量侦测。假如另一方不是带PoE的设备,那么就不容易供以往48V的工作电压。可是PoE交换机虽具有交换机的作用,作为一般工业交换机应用时,沒有最大限度充分发挥它的使用价值,不足经济发展节省,是自然资源的消耗。假如不用对联接设备给予直流电,能够同时采用一般工业.

  • 深度图像基础知识(一)[通俗易懂]

    深度图像基础知识(一)[通俗易懂]深度图像(depthimage)也被称为距离影像(rangeimage),是指将从图像采集器到场景中各点的距离(深度)作为像素值的图像,它直接反映了景物可见表面的几何形状。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。深度数据流所提供的图像帧中,每一个像素点代表的是在深度感应器的视野中,该特定的(x,y)坐标处物体到离摄像头平面最近的

  • 安卓系统 第三方_第三方os

    安卓系统 第三方_第三方os安卓系统因其开源开放的特点,短短几年间就迅速占据了手机操作系统的大半的市场份额,Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,因此也出现了许许多多的基于安卓

  • YOLOv5学习总结(持续更新)「建议收藏」

    YOLOv5学习总结训练效果(持续更新)前言网络结构可视化yolov3yolov4yolov5核心基础内容Mosaic数据增强自适应锚框计算自适应图片缩放首先感谢江大白大佬的研究与分享,贴上链接深入浅出Yolo系列之Yolov5核心基础知识完整讲解将yolov3-v5的变化讲的很清楚,思路很清晰,值得花时间好好从头到尾读一遍。训练效果(持续更新)先贴结果,自己试了组工牌胸牌检测(yolov5s),100个epoch的mAP@.5达到0.95,效果真的不错,检测速度也很快,一张图0.009s(20

  • ccf csp认证真题(护师考试历年真题)

    CSP认证考什么怎么考?CCF计算机职业资格认证的每一道试题都十分经典,覆盖现实世界中方方面面的问题。这个历年试题解主要使用C/C++语言编写,将逐步增加Python和Java的解题程序。程序中附有注释,力求解题思路清晰简洁,值得珍藏与模仿。逐题改写过程中,富文本编辑器写的博客将全部用Markdown编辑器改写。改写的第一题,都增加了Python和Java的解题程序。2021.04第22次:CCF202104-1灰度直方图(100分)【计数】CCF202104-2邻域均值(100分.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号