禅道自动登录后,用于断言的元素定位不到。

来源:3-5 页面对象开发的第一种实现方式

飞扬的少年

2021-06-03

定位元素加了个显示等待
图片描述
selenium没找到edge的配置用的是
from msedge.selenium_tools import Edge,EdgeOptions 这个库
没有设置隐式等待
图片描述图片描述
定位报错
图片描述
我发现如果设置了隐式等待,就可以定位到了,不会报错了。是显式等待有什么问题么?
图片描述
这是为什么呢? 还有我看有人说隐式和显式同时使用取时间最长的,那是不是这2种等待不能同时使用呢?
图片描述
edge为什么会产生乱码呢,是编码问题么? chrome就没问题

写回答

1回答

托尼老师

2021-06-04

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。

0
2
托尼老师
回复
飞扬的少年
O(∩_∩)O
2021-06-07
共2条回复

Python自动化测试开发实战,能帮你就业的测试课

开发高扩展、高可用的自动化测试框架,利用好测试自动化技术。

450 学习 · 157 问题

查看课程