簡體   English   中英

Python Selenium:很難找到密碼元素

[英]Python Selenium: Difficulty finding the password element

我第一次嘗試使用 Selenium 以自動方式登錄網站。 我可以使用以下代碼輕松找到電子郵件(用作用戶名)元素:

在此處輸入圖片說明

但是,對於密碼,沒有 id 或名稱標簽,因此我很難找到該元素。 這是頁面的源代碼。 密碼元素在下方以灰色突出顯示:

在此處輸入圖片說明

我嘗試使用以下語句通過 link_text 和 class_name 定位密碼元素,但都失敗了:

在此處輸入圖片說明

我想通過 XPath 定位可能是這里的方法,但我不確定語法(特別是因為有很多 div 標簽)。 任何幫助表示贊賞。

request.passwordng-model屬性,而不是文本。

find_element_by_class_name接收一個類,您嘗試使用三個類。

使用css_selector定位元素:

通過request.password

driver.find_element_by_css_selector('[ng-model="request.password"]')

按班級

driver.find_element_by_css_selector('.form-control.ng-pristine.ng-valid')

假設頁面上沒有其他密碼元素,一種方法是找到所有輸入標簽,然后將它們過濾為密碼字段。

def getPassword(driver):
    inputs = driver.find_elements_by_tag_name('input')
    for input in inputs:
        if input.get_attribute('type')=='password':
            return input
    return None

從這個問題得到語法幫助

最好的辦法是

driver.findElement(By.xpath("//input[@type='password'][@title='Password']")) 

嘗試使用較少的類選擇器並使用 id 或標簽。 類可以與另一個元素相關聯。 這是在 Java 中,抱歉。 如果需要,可以在 python 中找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM