python和selenium面试题,selenium常见面试题
1、selenium的原理是什么?
硒的原理涉及三个部分,如下:
浏览器驱动:通常我们下载驱动客户端。也就是说,我们写的代码的客户端实际上并不知道浏览器是如何工作的,但是在selenium中启动驱动程序后,驱动程序实际上充当了服务器的角色,与客户端和浏览器进行通信,客户端与web drrrium进行通信。
2、WebDriver提供哪些常见类型的驱动程序?
web驱动有通用的驱动。本节建议大家在面试前浏览官网,实时同步更新。
http://www.Sina.com/
和客户端驱动程序。无论是在java还是c#上实现,客户端都可以通过这个约定准确地告诉drier做什么和如何做。
web驱动协议本身就是http协议,使用json来传输数据。
这里是web驱动协议的所有端点。看一看,你会发现这些端点涵盖了selenium的所有功能。
3、webdriver的协议是什么?
简单来说,使用class显示测量的页面。类定义页面上的元素和特定于该页面的方法。
4、什么是page object设计模式?
页面工厂实际上是官方Java页面对象工厂模型的实现。
5、什么是page factory?
Web驱动通过三种方法(isDisplayed()、isSelected()和isEnabled())确定Web元素的可见性,结果是lcdsb类型。Web元素包括按钮、下拉框、复选框、单选按钮和标签。
isDisplayed():
boolean B1=driver.find元素(by . id)“XXX”)。isDisplayed
是选择(:
布尔B2=driver.find元素(by . id)“XXX”)。is selected);
已启用(:
布尔B3=driver.find元素(by . id)“XXX”)。is enabled);
6、如何查找元素是否显示在屏幕上?
Selenium没有提供判断元素存在的原生方法,一般可以通过定位元素的异常来判断。
# try:dr . find _ element _ by _ id( none )存在于元素3360 print elementdoesnotexist 33330中
不,硒不能放置隐形元素。display=none的元素实际上是不可见的元素。
7、selenium中如何判断元素是否存在?
网速不好的时候,使用合适的等待时间;被点击的元素必须占据一定的空间。默认情况下,selenium会到达这个元素的中心点,所以不占用空间的元素无法计算中心点。被单击的元素不能被其他元素隐藏;单击的元素不在视口之外。也就是说,如果该元素可见,或者该元素需要通过滚动条操作可见,则确定该元素是否可以被点击。8、selenium中hidden或者是display none的元素是否可以定位到?
元素定位错误;如果页面加载时间太慢,搜索元素程序已经完成,还有一个页面尚未加载,可以设置加载页面的等待时间;元素可能包含在iframe或frame中,并且必须进行切换。9、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
属性的动态变化是指元素没有固定的属性值,只能定位在相对位置。
第一种方法:用findelements遍历。
第二种方法:通过xpath轴的parent/following-sibling/percent-sibling。
10、selenium自动化页面元素找不到存在异常的原因?
触发一个动态事件,然后点击
findelement如果是动态菜单,你需要一次找一级。
13、如何提高selenium脚本的执行速度?
使用更高配置的电脑,选择更快的网络环境;使用更高效的语言,比如java,比python更快;优化代码;不要盲目添加睡眠,尽量使用显性等待;可以考虑分布式执行(比如配置testNG实现多线程)或者使用selenium grid;对于firefox,考虑使用专用于测试的配置文件,因为每次启动浏览器时,firefox都会创建一个新的配置文件。对于这个新的profile,所有的静态资源都是直接从服务器下载,而不是从缓存加载,导致了在网络不好的情况下用例运行非常慢的问题;Chrome和safari浏览器似乎是最快的。14、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
测试独占配置文件,尝试缓存静态资源;尽量使用显式等待;尽量使用特殊的环境进行测试,避免同时进行其他类型的测试,会对数据产生干扰。15、id,name,clas,xpath,css selector这些定位器,你最偏爱哪一种,为什么?
Xpath和css是最灵活的。身份证,姓名等。需要开发支持。
16、selenium为什么不推荐使用xpath定位?
Selenium使用xpath通过遍历页面来定位,性能指标较差。另外,xpath定位是通过绝对路径定位,有时不准确;
而用css选择器定位更简单快捷,通常用在对性能要求严格的场景。
17、如何去定位页面上动态加载的元素?
显性等待。(显示等待是有条件等待,隐式等待是无条件等待,比如sleep,driver.implicitly_wait())
显示示例:
WebDriverWait(driver,3,0.5) #传入三个参数,第一个是浏览器驱动,第二个是等待多少秒,第三个是监控多少秒。
18、如何去定位属性动态变化的元素?
找出属性的动态变化规律,然后根据上下文生成动态属性。
19、如何通过子元素定位父元素?
通过父元素定位子元素可以通过二次定位找到。
第一种方法是通过子元素定位父元素。selenium提供了父方法,但只能定位父元素,无法获取元素的属性并进行操作。
第二,通过xpath语法直接定位。比如说。//*[@name=hello]/.两个点代表父元素。
点击链接加入群聊【软件测试交流群】:https://jq.qq.com/? _ wv=1027k=oizwwn 9 e
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。