我正在尝试编写硒脚本来搜索网页上的术语,然后从表中选择它们。
该表是动态的,并且在将元素输入搜索字段时会发生变化。通常,当我过去写过硒代码时,我只是使用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
据我所知,这应该是我尝试调用的方法的正确语法。任何帮助,将不胜感激!如果需要详细说明,请告诉我。
[Expcted condition
基本上与find_element
和find_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