小弟最近在練習寫自動化測試,當網站有相同且複數的element時,我要怎麼選取其中一個,我用的是Xpath,沒有直接複製網站上的xpath是因為每次開啟網站,xpath值都會變動
範例:
CheckDocument = driver.find_element(By.XPATH, "//input[@class='ivu-checkbox-input']")
例如上面用這個辦法搜尋時會有多個相同的elememt在現在能讀取到的頁面上,請問要如何解決?
不知道想要解決什麼,恕無法準確回答。
定位元素的方法有 find_element
和 find_elements
兩者,前者會回傳第一個符合的元素,後者會回傳所有符合的元素。
除了使用 XPath 來定位元素,也能使用下列 By
類別的屬性:
By.ID
By.NAME
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.TAG_NAME
By.CLASS_NAME
By.CSS_SELECTOR
這是網站的element 想解決有多個同樣名稱:ivu-table-cell-slot
這網站上有8個一樣的,我想只取第8個元素
三擇一:
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)")
感謝回答 目前第2個是成功的