2017-04-25 105 views
0

我想大多数人都知道如何等待一个元素,即是这样的:Python的硒EC等待(不指定By.Identifier)

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "myDynamicElement")) 
) 
element.click() 

我的问题是我怎么能去抽象出来告诉它究竟我怎么给它的元素(上面例子中的“By.ID”部分)。 这样我就可以把它作为一个基类在任何地方调用它,并将它传给任何标识的元素。

有没有人做过这样的事情?

回答

0

如果您只是使用css选择器(#id为id),您可以始终使用css。

或者,你总是可以存储选择作为(By, locator)一个元组或列表[By, locator]和图示的

locator_tuple = (By.ID, "myDynamicElement") 

def wait_method(locator): 
    return WebDriverWait(driver, 10).until(EC.element_to_be_clickable(*locator))