美文网首页
selenium常见问题理解

selenium常见问题理解

作者: 少女萌的进击之路 | 来源:发表于2021-08-17 21:23 被阅读0次

1.UI自动化定位页面元素的主流方法和优缺点

主流方法就四种:by.name/by.id/css selector/xpath,
by.name/by.id和css selector实际是相同的底层方法(by.id和by.name的底层实现实际上是调用by.css_selector,然后设置id和name),所以主流定位元素方法就两大类:css selector和xpath
xpath优点是使用范围广,页面元素肯定能找到,缺点是找元素慢,原因是它是对页面全部元素进行遍历
css seletor 优点是快,缺点是只能应用于网页的css样式定位,android原生页面没用到css样式,,appium原生控件就不能用,对手机应用中的web view就可以应用css selector

2.三种等待方式理解

直接等待

优缺点:
优点:强制等待,简单粗暴,显式等待隐式等待用不了的时候强制等待总能用;
缺点:各元素,即便是同一元素等待的时间也不固定,总得改,不够灵活自动化;

隐式等待

隐式等待:全局等待,直到元素出现(此时元素不一定可用)就停止等待,调用find_element就会触发隐式等待
优点:对全局生效,且找到就停止等待
缺点:因为对全局生效,不可设太长,否则会影响出问题元素的报错效率;且若通过条件就是元素不出现则无法支持

显式等待

显式等待:对单一元素等待,直到某种条件满足则停止等待(某元素可点击,某元素出现等,可自己改写)
优点:适用于由于元素加载出来但js没加载完全导致的操作无效情况的等待;

某场景:即便隐式等待和显式等待设更长的时间也解决不了这个问题,这个问题的核心是元素出现并可点击时,点击后跳转的代码未加载完,点了不能立刻生效,需要多次点击,而隐式等待和显式等待都是条件满足后点击一次就结束了,所以指望在使用下一个页面元素时多等会儿根本不可能,等多久也等不到,因为点“添加成员”根本没生效,根本不会跳到下一页面,所以需要改写显式等待,在显式等待时循环点击“添加成员”去完成页面跳转

等待方式demo

3.selenium的自动化操作是否是非法的?

不是,selenium通过浏览器webdriver去驱动浏览器,调用的事浏览器厂商提供的接口,和用户自己点击浏览器是一样的

4.弹框区分是div还是alert:div通常完成的场景比较复杂,alert通常有确认,取消按钮;alert无法通过定位器定位

5.类中变量:

1.公有变量;driver,可给所有类调用;

2.protect变量:_driver,可给类本身和子类调用,其他类不可调用

3.private变量:__driver,只可给类本身的方法调用,子类和其他类都不可调用

相关文章

网友评论

      本文标题:selenium常见问题理解

      本文链接:https://www.haomeiwen.com/subject/bqgubltx.html