我試圖回圈通過兩個單選按鈕單擊一個獲取一些詳細資訊,然后單擊第二個并再次獲取相同的詳細資訊。它點擊第一個,但我無法讓它點擊第二個。
radio_button = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
print (radio_button)
for radio in range(len(radio_button)):
radio = wait.until(EC.presence_of_element_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
radio.click()
"get some data"
print (radio)
“radio_button”的列印顯示我正在獲取我想要單擊的兩個不同元素。
<selenium.webdriver.remote.webelement.WebElement (session="dda6abe5-88a7-419a-8cb8-ff7438739c62", element="aa9d00e5-06f2-4f64-ab6a-8382f13c0cf9")>
<selenium.webdriver.remote.webelement.WebElement (session="dda6abe5-88a7-419a-8cb8-ff7438739c62", element="70c7d3d9-5c3b-4939-a1ea-ccf1287adab5")>
“radio”的列印結果表明我將第一個元素取回了兩次。
<selenium.webdriver.remote.webelement.WebElement (session="dda6abe5-88a7-419a-8cb8-ff7438739c62", element="aa9d00e5-06f2-4f64-ab6a-8382f13c0cf9")>
<selenium.webdriver.remote.webelement.WebElement (session="dda6abe5-88a7-419a-8cb8-ff7438739c62", element="aa9d00e5-06f2-4f64-ab6a-8382f13c0cf9")>
我究竟做錯了什么?提前謝謝了。
uj5u.com熱心網友回復:
您獲得相同元素的原因是因為您正在迭代串列并尋找 xpath,它總是只回傳第一個元素。
您需要使用索引來獲取特定元素。
radio_button = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
print (radio_button)
for radio in range(len(radio_button)):
radio = wait.until(EC.visibility_of_element_located((By.XPATH,"(//input[@class='vfuk-Radio__input'])[{} 1]".format(radio))))
radio.click()
"get some data"
print (radio)
或者只使用 list[elementIndex]
radio_button = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
print (radio_button)
for radio in range(len(radio_button)):
radio =radio_button[radio]
radio.click()
"get some data"
print (radio)
uj5u.com熱心網友回復:
每次呼叫時,您都會將第一個元素背靠背兩次:
radio = wait.until(EC.presence_of_element_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
在兩次迭代中,第一個匹配元素,即第一個單選按鈕被識別并被點擊。
解決方案
您可以進行如下小修改:
radio_buttons = wait.until(EC.visibility_of_all_elements_located((By.XPATH,"//input[@class='vfuk-Radio__input']")))
print (radio_buttons)
for radio in radio_buttons :
radio = wait.until(EC.element_to_be_clickable(radio))
radio.click()
print (radio)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/444112.html
標籤:Python python-3.x 硒 硒网络驱动程序 路径
