明确地等待作为另一个元素的子元素的元素

时间:2017-03-06 00:56:24

标签: python selenium

如果您有WebElement对象,则可以像这样搜索其子项

element = WebElement(blah...)
element.find_element_by_id('blah')

是否可以使用显式等待执行相同的操作,如

wait = WebDriverWait(self.driver, self.timeout)
element = wait.until(expectedCondition(locator))

因此,如何指定显式等待只搜索元素的子元素,而不是搜索整个DOM?

1 个答案:

答案 0 :(得分:2)

使用python,until实际上只是针对传递的驱动程序调用该方法。因此,以及大多数驱动程序方法也是webelement方法的事实,您实际上可以将webelement作为'驱动程序'到WebDriverWait。

所以对你的例子来说:

wait = WebDriverWait(webelement, self.timeout)
element = wait.until(expectedCondition(locator))

或者,您可以使用lambda:

wait = WebDriverWait(self.driver, self.timeout)
element = wait.until(lambda d: webelement.find_element_by_id('blah'))