Python Selenium:通过xpath选择对象大约80%的时间有效,其他人失败



我有一个程序,它包含几个find_element/click语句和大多数工作,但这是唯一的问题语句:

wait.until(lambda driver: browser.find_element_by_xpath('/html/body/table[3]/tbody/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td[1]/table[2]/tbody/tr[2]/td'))
print('Accessing Virtual Warehouse')
VirtWhse = browser.find_element_by_xpath('/html/body/table[3]/tbody/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td[1]/table[2]/tbody/tr[2]/td')
VirtWhse.click()

添加wait函数是因为我认为它可能试图在加载元素之前单击。添加与否似乎没有什么区别。它被定义为:

browser = webdriver.Chrome
wait = ui.WebDriverWait(browser,10)

我知道它正在查找元素,因为我的print语句总是被输出的。此外,当我看到链接被执行时,我可以在浏览器中看到它被下划线。

问题是,它似乎只有80%的时间点击链接。剩下的时间,我的wait.until函数超时,程序崩溃。(EDIT-超时的等待函数是点击后的下一个等待函数,而不是代码片段中的等待函数。(

有人能解释一下为什么我在这个元素上存在可靠性问题吗?

我在@JackWu的VirtWhse.click((之前添加了time.sleep(.5(,这似乎解决了问题。

我原以为我最初的wait.until函数会阻止需要它,但我想它只需要在定义这个特定对象和出于某种原因选择它之间花一点时间。

最新更新