首页 > 解决方案 > Selenium + Python 期望特定的已找到元素

问题描述

我想在一个已经找到的对象上使用期望,但我得到了一个错误。我只能在单击父项之前找到父项-之后它会变异为“多相似”输入元素,区分它的唯一方法是“值”属性(不是属性,因此无法从 XPath 访问) .

我的代码是(类似于):

parent_element = self.driver.find_element_by_xpath("//div/div/input[position()=10]/div")
parent_element.click()  # After this I cannot locate parent_element any more
child_element = WebDriverWait(self.driver,3).until(
    expect.element_to_be_clickable(
        parent_element.find_element_by_xpath("./div")
    )
)
child_element.click()

这导致:

TypeError: find_element() argument after * must be an iterable, not function

标签: pythonseleniumselenium-webdriver

解决方案


试试这条线:

child_element = WebDriverWait(parent_element, 3).until(
    expect.element_to_be_clickable((By.XPATH, "./div")))

请注意,element_to_be_clickable()应该接收"by""value"作为唯一参数的元组,而不是 WebElement

PS我认为那expectExpectedConditions


推荐阅读