我在包含“Einloggen”文本的頁面上有兩個按鈕,我需要單擊“Einloggen”按鈕。
第一個元素是“Probleme beim Einloggen?” 是與 span 的鏈接。


第二個,我需要的是一個帶跨度的按鈕。

CSS 類不穩定,我不能使用它們。
我努力了:
self.log_in_link = WebDriverWait(self.driver, self.delay).until(
EC.presence_of_element_located((By.XPATH, "//button/following-sibling::span[contains(text(), 'Einloggen')]")))
但是找不到
如果我這樣嘗試
self.log_in_link = WebDriverWait(self.driver, self.delay).until(
EC.presence_of_element_located((By.XPATH, ".//span[contains(text(), 'Einloggen')]")))
驅動程式單擊了錯誤的元素(“Probleme beim Einloggen?”)
uj5u.com熱心網友回復:
從您提供的圖片中,我看到這里的父元素不是button一個div類buttonstyle。
請試試這個 XPath
//div[contains(@class,'buttonstyle')]//span[contains(text(),'Einloggen')]
我還建議使用visibility_of_element_located預期條件而不是presence_of_element_located等待更成熟的元素狀態,當它變得可見時,不僅僅是呈現(但可能仍未完全呈現)。
所以你的代碼可能是
WebDriverWait(self.driver, self.delay).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class,'buttonstyle')]//span[contains(text(),'Einloggen')]")))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/433114.html
