gpt4 book ai didi

python - 在 Python 中创建自定义等待条件

转载 作者:太空狗 更新时间:2023-10-29 21:41:40 28 4
gpt4 key购买 nike

我尝试在 Python 中创建一个具有自定义等待条件的函数。但是,我得到一个错误:

TypeError: 'bool' object is not callable

def waittest(driver, locator, attr, value):
element = driver.find_element_by_xpath(locator)
if element.get_attribute(attr) == value:
return element
else:
return False
wait = WebDriverWait(driver, 10)
element = wait.until(waittest(driver, '//div[@id="text"]', "myCSSClass", "false"))

最佳答案

WebDriverWait(driver, 10).until() 接受一个可调用对象,该对象将接受一个 webdriver 实例(driver 是我们的示例)作为参数。最简单的自定义等待,期望看到 2 个元素,看起来像

WebDriverWait(driver, 10).until(
lambda wd: len(wd.find_elements(By.XPATH, 'an xpath')) == 2
)

waittest 函数必须重写为:

class waittest:
def __init__(self, locator, attr, value):
self._locator = locator
self._attribute = attr
self._attribute_value = value

def __call__(self, driver):
element = driver.find_element_by_xpath(self._locator)
if element.get_attribute(self._attribute) == self._attribute_value:
return element
else:
return False

然后它可以用作

element = WebDriverWait(driver, 10).until(
waittest('//div[@id="text"]', "myCSSClass", "false")
)

关于python - 在 Python 中创建自定义等待条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420957/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com