禅道自动登录后,用于断言的元素定位不到。
来源:3-5 页面对象开发的第一种实现方式
飞扬的少年
2021-06-03
定位元素加了个显示等待
selenium没找到edge的配置用的是
from msedge.selenium_tools import Edge,EdgeOptions 这个库
没有设置隐式等待

定位报错
我发现如果设置了隐式等待,就可以定位到了,不会报错了。是显式等待有什么问题么?
这是为什么呢? 还有我看有人说隐式和显式同时使用取时间最长的,那是不是这2种等待不能同时使用呢?
edge为什么会产生乱码呢,是编码问题么? chrome就没问题
1回答
-
selenium官网有明确说明,隐式和显示等待不能同时使用,否则会出现等待时间的混乱,原文如下:
Warning: Do not mix implicit and explicit waits. Doing so can cause unpredictable wait times. For example, setting an implicit wait of 10 seconds and an explicit wait of 15 seconds could cause a timeout to occur after 20 seconds.
你产生的这个问题极可能出现在元素本身,因为隐式等待和显式等待的等待逻辑不同,隐式等待更加适合元素已经出现在DOM中,但未加载完全,可能处于不可见或未生效状态这种情况,而显示等待是只要发现DOM中出现这个元素,即认定等待完成,不管当前元素的状态是否可识别、可点击、可见等;
至于edge乱码问题,在option类或浏览器参数中寻找编码设定的方法或启动参数,将编码设为UTF-8,如果不行,可以向edge的维护方提一个issue。
022021-06-07
相似问题