使用 Selenium 在 for 循环中获取 Web 元素值的问题

问题描述 投票:0回答:1

嗨,我对 Selenium 4.18.1 和 Python 3.12.2 有一个奇怪的问题,我不明白。 我想通过循环所有元素来从 Web 元素获取特定值,如下面的代码所示:

loads = waste_collection_points_editing_page.get_loads()

actual_loads_values = []
    for i in loads:
        # time.sleep(1)
        values = i.text.split("\n")
        del values[2:]
        actual_loads_values.append(values)

但是当我这样做时,我没有得到这个值。我只得到空列表。

我尝试在调试模式下执行相同的操作 - 有趣的是,Web 元素列表已初始化,当我尝试在 pyhon 控制台的调试模式下获取此值时,我可以毫无问题地获取此值。 我尝试添加这一行

time.sleep(1)
它适用于它,但我不太明白为什么。

有人可以解释一下为什么我在没有 time.sleep 的情况下无法获得这个值。 Selenium 速度有问题还是其他什么问题?我是 Selenium 自动化方面的新手,我尝试弄清楚它。

python selenium-webdriver
1个回答
0
投票

基本上是页面加载需要时间。您可以使用 WebDriverWait预期条件。 WebDriverWait 是最好的选择,我遇到了同样的问题,它对我帮助很大。

你可以看看这个。

https://selenium-python.readthedocs.io/waits.html

© www.soinside.com 2019 - 2024. All rights reserved.