我正在使用等待函数,让Selenium在继续执行操作之前通过其文本在页面上搜索某个元素的存在。我试图将要搜索的文本传递到函数中,但是,我不断收到“ TypeError:'str'object is not callable”,这很奇怪,因为我正在寻找字符串!我已经尝试了所有我能想到的东西,甚至是转义序列,但似乎没有任何效果。请在下面找到我的代码:
self.webdriver_wait(action = 'find_text', keys_to_pass = 'Financial Documents')
def webdriver_wait(self, selector = '#body', action='', keys_to_pass=''):
try:
WebDriverWait(self.browser, 240).until(EC.presence_of_element_located((By.XPATH("//*[contains(text(), \' + str(keys_to_pass) + \'')]"))))
答案 0 :(得分:1)
By.XPATH
不是方法,而是简单的字符串(By.XPATH == 'xpath'
),您需要按以下方式使用它:
WebDriverWait(self.browser, 240).until(EC.presence_of_element_located((By.XPATH, "//*[contains(text(), '%s')]" % keys_to_pass)))