2016-11-24 66 views
0

我正在編寫可以登錄到網站的測試。我使用C#和Selenium。
1)密碼有兩個ID?!爲什麼有人會像這樣編碼?
2)ID包含動態數字,每次加載頁面時都會改變。Selenium在ID爲動態時選擇具有多個屬性的元素

唯一不同的是名爲ID是:

id="txtPassword_155799780_I_CLND" 
    id="txtPassword_155799780_I" 

我什麼都試過。

driver.FindElement(By.XPath(".//div[starts-with(@id,'txtPass') and contains(@text(),'I_CLND')]")); 

    driver.FindElement(By.XPath("//input[starts-with(@id,'txtPassword_')]")[2]); 





<input class="dxeEditArea_DevEx dxeEditAreaSys dxh0" id="txtPassword_156029875_I_CLND" type="text" tabindex="0" saveddisplay="[object Object]"> 

<input class="dxeEditArea_DevEx dxeEditAreaSys dxh0" id="txtPassword_156029875_I" name="txtPassword_156029875" onfocus="ASPx.EGotFocus('txtPassword_156029875')" onblur="ASPx.ELostFocus('txtPassword_156029875')" onchange="ASPx.EValueChanged('txtPassword_156029875')" type="password" saveddisplay="[object Object]" savedspellcheck="[object Object]" spellcheck="false" style="display: none;"> 

感謝

回答

1

你的問題是怎麼樣的所有的地方。我會嘗試使用類似下面的xpath的東西。我不知道你是否有兩個「密碼」元素顯示在網頁上或只有一個。發佈html,我們可以幫助你更好。

//input[contains(@id, 'txtPassword')][1] 

    or 

    //input[contains(@id, 'txtPassword') and @type='text'] 
+0

感謝您添加html。爲你增加了一些選項。 – Dazed

+0

我確實編輯了我的問題,我希望現在更清楚。 –

+0

嘗試上述,如果它工作接受答案。如果不讓我們知道發生了什麼。 – Dazed

相關問題