我有一個包含 7 個值的下拉選單,這 7 個值以串列項的形式存盤在無序串列下,如下所示:
<ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;">
<li class="rcbItem ">--Select--</li>
<li class="rcbHovered ">PIPL-C1-BH-RILJM</li>
<li class="rcbItem ">PIPL-C1-BH1-RILJM</li>
<li class="rcbItem ">PIPL-C1-BH2-RILJM</li>
<li class="rcbItem ">PIPL-C1-BH-RPLJM</li>
<li class="rcbItem ">PIPL-C1-DHJ-RPLJM</li>
<li class="rcbItem ">PIPL-C1-DHJ-RILJM</li>
</ul>
我想for在 python 中 selenium chromedriver 的幫助下使用回圈單擊此下拉選單的每個值。
假設我想點擊第二個值PIPL-C1-BH-RILJM,我可以這樣做:
driver.find_element(By.XPATH,"//div[@id='ContentPlaceHolder1_rcmbCapacityTranch_DropDown']/div/ul/li[2]").click()
但是要在for回圈中使用它,我必須對li標簽進行索引。所以,當我寫成:
i=2
driver.find_element(By.XPATH,"//div[@id='ContentPlaceHolder1_rcmbCapacityTranch_DropDown']/div/ul/li[' str(i) ']").click()
它僅顯示--Select--而不選擇第二個值,其他值也會發生同樣的情況i。
我也試過:
i=2
driver.find_element(By.XPATH,"//div[@id='ContentPlaceHolder1_rcmbCapacityTranch_DropDown']/div/ul/li['" str(i) "']").click()
但從--Select--下拉選單中再次選擇。
所以,任何人都可以幫我點擊帶有li標簽索引的特定值。
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
像下面這樣嘗試一次:
收集li串列中的所有標簽元素,然后遍歷它們。用途find_elements相同。
# This should highlight all the li tags - //div[@id='ContentPlaceHolder1_rcmbCapacityTranch_DropDown']/div/ul/li
options = driver.find_elements(By.XPATH,"//div[@id='ContentPlaceHolder1_rcmbCapacityTranch_DropDown']/div/ul/li")
# This should print 7
print(len(options))
# Start the loop from index 1 since the first option is "--Select--"
for i in range(1,len(options)):
options[i].click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/345152.html
上一篇:使用fork-execv從C呼叫Python的語法錯誤
下一篇:從1-1000的亂數倒數
