selenium python 中 WebDriverWait 方法 element_to_be_clickable() 的响应
Response from WebDriverWait method element_to_be_clickable() in selenium python
我正在构建一个自动化脚本,它将打开浏览器并登录到门户。它必须单击几个按钮和页面。我在 python 中使用 selenium,因此例如单击我使用的按钮 WebDriverWait
:
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']''')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(BTN)).click()
是否有任何 return 代码或我可以从 WebDriverWait
获得的任何响应代码,以便在脚本中我确定它成功运行并且我可以继续前进
您的代码试用非常完美,如下所示:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(BTN)).click()
expected_conditions
method element_to_be_clickable()
returns WebElement 可见并启用 所以你可以直接在上面调用 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()
我正在构建一个自动化脚本,它将打开浏览器并登录到门户。它必须单击几个按钮和页面。我在 python 中使用 selenium,因此例如单击我使用的按钮 WebDriverWait
:
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']''')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(BTN)).click()
是否有任何 return 代码或我可以从 WebDriverWait
获得的任何响应代码,以便在脚本中我确定它成功运行并且我可以继续前进
您的代码试用非常完美,如下所示:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(BTN)).click()
expected_conditions
method element_to_be_clickable()
returns WebElement 可见并启用 所以你可以直接在上面调用 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()