在網頁中,下面有很多這樣的元素,我想找到所有這些元素并一個一個地點擊。它們具有相同的類名,但 ID 不同。
我怎樣才能找到它并點擊?
<a class="do do-task btn btn-sm btn-primary btn-block" href="javascript:;" data-task-id="1687466" data-service-type="3" data-do-class="do-task" data-getcomment-href="/tasks/getcomment/" data-check-count="0" data-max-check-count="2" data-money-text="0.08"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">0.08 </font></font><i class="far fa-ruble-sign"></i></a>
uj5u.com熱心網友回復:
要識別所有相似的元素并創建一個串列,您必須引發WebDriverWait forvisibility_of_all_elements_located()并且您可以使用以下任一定位器策略:
使用
CSS_SELECTOR:element_list = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "a.do.do-task.btn.btn-sm.btn-primary.btn-block[data-task-id]")))使用
XPATH:element_list = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//a[@class='do do-task btn btn-sm btn-primary btn-block' and @data-task-id]")))
接下來,您可以訪問每個串列項并click()逐個呼叫它們。
注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
uj5u.com熱心網友回復:
如果這個css
a.do.do-task.btn.btn-sm.btn-primary.btn-block
代表他們,然后你可以使用下面的代碼:
for a in driver.find_elements_by_css_selector("a.do.do-task.btn.btn-sm.btn-primary.btn-block"):
a.click()
您可能需要滾動到每個元素或在點擊前放置一些延遲,這取決于您的用例和自動化策略。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/352820.html
