iT邦幫忙

1

Python Selenium element 問題

  • 分享至 

  • xImage

小弟最近在練習寫自動化測試,當網站有相同且複數的element時,我要怎麼選取其中一個,我用的是Xpath,沒有直接複製網站上的xpath是因為每次開啟網站,xpath值都會變動
範例:

CheckDocument = driver.find_element(By.XPATH, "//input[@class='ivu-checkbox-input']")

例如上面用這個辦法搜尋時會有多個相同的elememt在現在能讀取到的頁面上,請問要如何解決?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Felix
iT邦研究生 2 級 ‧ 2023-06-19 10:47:07

不知道想要解決什麼,恕無法準確回答。

定位元素的方法有 find_elementfind_elements 兩者,前者會回傳第一個符合的元素,後者會回傳所有符合的元素。

除了使用 XPath 來定位元素,也能使用下列 By 類別的屬性:

By.ID
By.NAME
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.TAG_NAME
By.CLASS_NAME
By.CSS_SELECTOR
ldd77 iT邦新手 5 級 ‧ 2023-06-19 11:19:41 檢舉

這是網站的element 想解決有多個同樣名稱:ivu-table-cell-slot
這網站上有8個一樣的,我想只取第8個元素

Felix iT邦研究生 2 級 ‧ 2023-06-19 11:28:46 檢舉

三擇一:

driver.find_element(By.XPATH, "//input[@class='ivu-checkbox-input'][8]")

driver.find_elements(By.XPATH, "//input[@class='ivu-checkbox-input']")[7]

driver.find_element(By.CSS_SELECTOR, "input.ivu-checkbox-input:nth-child(8)")
ldd77 iT邦新手 5 級 ‧ 2023-06-19 11:46:38 檢舉

感謝回答 目前第2個是成功的

我要發表回答

立即登入回答