Python Selenium-尝试为表元素中的文本更改编写等待条件

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

我正在尝试编写硒脚本来搜索网页上的术语,然后从表中选择它们。

该表是动态的,并且在将元素输入搜索字段时会发生变化。通常,当我过去写过硒代码时,我只是使用wait语句等待页面上的某些元素加载后再继续。这样,我特别需要等到要查找的元素出现在表中,然后再选择它。

这是我当前编写的内容,其中tableElement是我试图搜索的表,而userID是我希望找到的输入:

tableElement = self.driver.find_element_by_xpath(
                'X-PATH_TO_ELEMENT')

ui.WebDriverWait(self.driver, 15).until(
                EC.text_to_be_present_in_element(
                    tableElement, userID)
            )

运行此代码时,我收到以下错误消息:

find_element() argument after * must be an iterable, not WebElement

据我所知,这应该是我尝试调用的方法的正确语法。任何帮助,将不胜感激!如果需要详细说明,请告诉我。

python python-3.x selenium browser-automation
1个回答
1
投票

[Expcted condition基本上与find_elementfind_elements一起使用。

在您的代码中,您向EC提供了Web元素,而不是定位符。

您可以使用以下代码在代码中使用EC:

WebDriverWait(driver, 30).until(
             EC.visibility_of_all_elements_located((By.XPATH, "xpath of your element")))

注意:您必须在解决方案中添加以下内容:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
© www.soinside.com 2019 - 2024. All rights reserved.