你的
代码试用
非常完美,如下所示:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(BTN)).click()
这个
expected_conditions
element_to_be_clickable()
返回
当它是
是
所以你可以直接调用
click()
方法。
现在根据你的意见更新,如果你想实现
3-4次重试
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
BTN= (By.XPATH, '''//a[@ui-sref="app.colleges.dashboard({fid: app.AppState.College.id || Colleges[0].id, layout: app.AppState.College.layout || 'grid' })"]//div[@class='item-inner']''')
for i in range(3):
try:
WebDriverWait(driver, 5).until(EC.element_to_be_clickable(BTN)).click()
print("Element was clicked")
break
except TimeoutException:
print("Timeout waiting for element")
driver.quit()