我正在嘗試單擊以下按鈕:
<tr class="">
<td>
May 09 2022 09:00
</td>
<td>
Ecole 1337, Parc Tétouan Shore, commune de Martil, CP93150 – Tétouan
</td>
<td>
No spaces left
</td>
<td>
<a class="btn btn-primary" id="js-piscine-17" href="/piscines/17/piscines_users">Add me to the waiting list</a>
</td>
</tr>
使用以下代碼:
table = browser.find_element(By.CSS_SELECTOR, '#subs-content > table')
time.sleep(5)
plc = table.find_elements(By.XPATH, "//*[contains(text(),'Martil')]")[-1]
print(plc.text)
plc.click()
這段代碼確實列印了文本,但沒有單擊所需的按鈕。
有人可能會問:好吧,為什么不直接使用 css 選擇器或按鈕 id 呢?
但我希望網站會更新,并且會有更多按鈕可以讓我的代碼點擊,但我不知道他們的 id 或 css 選擇器是什么。唯一的標準是它的“<tr>”中應該有“Martil”這個詞。
編輯:感謝@Dimitar,我能夠使用以下代碼解決問題:
table = browser.find_element(By.CSS_SELECTOR, '#subs-content > table')
for row in table.find_elements(By.TAG_NAME, 'tr')[::-1]:
martil_row = row.find_element(By.XPATH, './/*[contains(text(), "Martil")]')
if martil_row is not None:
row.find_element(By.TAG_NAME, 'a').click()
break
uj5u.com熱心網友回復:
您的代碼中的問題是您正在找到不可點擊的“td”元素。可點擊元素是“a”。
martil_rows = []
table = driver.find_element(By.CSS_SELECTOR, '#subs-content > table')
for row in table.find_elements(By.TAG_NAME, 'tr'):
martil_row = row.find_element(By.XPATH, './/*[contains(text(), "Martil")]')
if martil_row is not None:
martil_rows.append(row.find_element(By.TAG_NAME, 'a'))
martil_rows[-1].click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468327.html
