Python selenium:等待webelement
我有一个函数,它通过css选择器查找一个元素,并等待它被单击:Python selenium:等待webelement,python,selenium,webdriver,Python,Selenium,Webdriver,我有一个函数,它通过css选择器查找一个元素,并等待它被单击: def wait_for_element_clickable(cls, selector, timeout=10, parent=None): """ wait for an element to be clickable """ if parent is None: parent = cls.driver wd_wait = WebDriverWait(parent, timeout)
def wait_for_element_clickable(cls, selector, timeout=10, parent=None):
""" wait for an element to be clickable """
if parent is None:
parent = cls.driver
wd_wait = WebDriverWait(parent, timeout)
# Wait for it to be visible too.
cls.wait_for_element(selector=selector, parent=parent)
wd_wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, selector)),
'waiting for element to be clickable ' + selector)
return parent.find_element_by_css_selector(selector)
现在我已经有了一个WebElement,我只想等待它被点击。有没有一种方法可以在现有的WebElement上使用EC.element可点击?
element可点击
在Python中对WebElement没有重载(尽管在Java和C中有重载)。但是你可以自己写
class element_to_be_clickable(object):
def __init__(self, element):
self.element = element
def __call__(self, driver):
return element.is_displayed() and element.is_enabled()
使用
尝试使用Javascript wait,它将处理您的问题。它看起来像element.is_displayed()和element.is_enabled()并不是wd_wait.until(EC.element_to_be_clickable)的等价替代品,这里也提到了这一点:我仍然在代码中看到“element…在点上不可单击…”错误。
wd_wait.until(element_to_be_clickable(element))