我正在嘗試在 python 中使用 Selenium 為一個 ERP 平臺創建一個自動下載事件。這對于這部分來說有點棘手,因為沒有要查找和單擊的特定元素。
多個按鈕具有相同的類并且突出顯示的按鈕沒有 id (DATABASE/BACKUP)

任何人都可以幫助我嗎?
事件流程>>登錄頁面>點擊“管理按鈕”>點擊“資料庫/備份”
謝謝
uj5u.com熱心網友回復:
根據 Selenium 檔案https://selenium-python.readthedocs.io/locating-elements.html,您可以通過類名找到所有元素,然后通過索引([index_number])訪問它們。
all_buttons = driver.find_elements_by_class_name("your_class_name")
那么你可以做這樣的事情:
button_to_click = all_buttons[3] # The 4th button which has index 3 in all the retrieved buttons by class name
uj5u.com熱心網友回復:
driver.find_element(By.XPATH,"//a[contains(text(),'Database / Backup')]").click()
只需單擊包含文本的標簽。
uj5u.com熱心網友回復:
要單擊文本為DATABASE/BACKUP的元素,您可以使用以下任一定位器策略:
使用xpath:
driver.find_element(By.XPATH, "//a[@class='menui' and contains(., 'DATABASE/BACKUP')]").click()使用xpath:
driver.find_element(By.XPATH, "//a[text()[contains(., 'DATABASE/BACKUP')]]").click()
所需的元素是一個動態元素,理想情況下要單擊可點擊元素,您需要為element_to_be_clickable()引發WebDriverWait,您可以使用以下任一定位器策略:
使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='menui' and contains(., 'DATABASE/BACKUP')]"))).click()使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[text()[contains(., 'DATABASE/BACKUP')]]"))).click()注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/392696.html
標籤:Python 硒 硒网络驱动程序 路径 网络驱动程序等待
上一篇:pythonseleniumdriver.quit()不會中途終止程式
下一篇:在cloud9環境中存盤密碼
