我有一个像这样的东西

el = WebDriverWait(browser, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, "till-cap"))
)

上面代码的问题是,它不等待所有元素,它返回5个而不是12个元素,有时元素可能更多或更少,我通过在Python中使用time.sleep(15)来解决这个问题,等待15秒.但我觉得这不是解决这个问题的最好办法.谢谢.

推荐答案

尽管该功能不是Selify中的原生函数,但您可以实现一个lambda函数来验证存在多少元素,然后再继续:

WebDriverWait(browser,10).until(lambda method: len(EC.presence_of_all_elements_located(By.CSS_SELECTOR, "till-cap")) == 12)

Java为这个用例提供了SelSelum原生功能,但在Python中,我们必须临时使用lambda方法.为了避免出现lambda,您可以将time.Sept()放在WebDriverWait函数之后,因为其余元素通常在第一个元素之后不久填充:

el = WebDriverWait(browser, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, "till-cap"))
)
time.sleep(2)

这可以使您减少所需的时间.睡眠(),但是您很可能需要测试几次才能看到所需的最短时间.

Python相关问答推荐

使用Python计算cmyk,在PDF上发现覆盖范围

是否有使用纯霍夫曼编码的现代图像格式?

如何将自动创建的代码转换为类而不是字符串?

Python中使用Delivercio进行多个请求

Python中的Pool.starmap异常处理

使用imap-tools时错误,其邮箱地址包含域名中的非默认字符

如何将桌子刮成带有Se的筷子/要求/Beautiful Soup ?

强制venv在bin而不是收件箱文件夹中创建虚拟环境

jit JAX函数中的迭代器

使用polars .滤镜进行切片速度比pandas .loc慢

Python:在类对象内的字典中更改所有键的索引,而不是仅更改一个键

在Python中处理大量CSV文件中的数据

try 在树叶 map 上应用覆盖磁贴

运行终端命令时出现问题:pip start anonymous"

2D空间中的反旋算法

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

实现神经网络代码时的TypeError

Python中的变量每次增加超过1

Polars asof在下一个可用日期加入

如何使用OpenGL使球体遵循Python中的八样路径?