您好,我需要點擊一個href鏈接,但它沒有任何類、ID、文本或任何內容。
<div>
<a href="/ad/repost/id/2109701">
<span>Réafficher</span>
<i class="fa fa-refresh">
</i>
</a>
我已經嘗試了以下和其他多種方法。
Link = driver.find_element((By.XPATH, '//*[@id="body"]/div[4]/div[3]/div[1]/div[3]/div[1]/a/span'))
但它會引發錯誤。
我對輸入按鈕也有同樣的問題:
<div class="modal-pm-left">
<input type="button" class="btn-orange modal-close" value="Fermer">
</div>
幫助>_<
uj5u.com熱心網友回復:
您可以href使用以下定位器定位元素:
"//a[contains(@href,'/ad/repost/id/2109701')]"
或者
"//a[./span[text()='Réafficher']]"
該input元素可以位于
"//input[@value='Fermer']"
如果沒有看到實際的網頁 HTML,我無法 100% 確定上述定位器的唯一性
uj5u.com熱心網友回復:
該href屬性是父 A 標簽的一部分,它也有一個包含文本Réafficher的后代 SPAN 。因此,呼叫 SPAN 上的單擊也將產生與單擊具有href屬性的 A 標記類似的結果。
要將文本作為Réafficher的元素單擊() ,您可以使用以下任一Locator Strategies:
使用css_selector:
driver.find_element(By.CSS_SELECTOR, "a[href$='2109701'] span").click()使用xpath:
driver.find_element(By.XPATH, "//a[@href]//span[text()='Réafficher']").click()
理想情況下,要單擊可點擊元素,您需要為element_to_be_clickable()誘導WebDriverWait ,并且您可以使用以下任一定位器策略:
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href$='2109701'] span"))).click()使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@href]//span[text()='Réafficher']"))).click()
同樣,要單擊<input>按鈕,您可以使用以下任一定位器策略:
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.btn-orange.modal-close[value='Fermer']"))).click()使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='btn-orange modal-close' and @value='Fermer']"))).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/shujuku/414616.html
標籤:
