2010-10-13 46 views
3

我有以下元素(登錄框):如何找到Selenium元素的DOM和CSS地址?

<input type="text" style="font-family: Verdana; font-size: 11px; width: 180px;" id="ctl00_Content_ctl00_Login2_UserName" maxlength="50" name="ctl00$Content$ctl00$Login2$UserName"> 

因爲我有一個Firebug的,如果我右鍵點擊元素上它給我的XPath地址(//*[@id="ctl00_Content_ctl00_Login2_UserName"])。

Selenium website,我想能夠在元素上點擊也DOMCSS。我該怎麼做?有沒有一個簡單的工具(瀏覽器插件)可用於此目的?我只是不想被id和xpath單獨限制。

回答

1

CSS定位是

css=#ctl00_Content_ctl00_Login2_UserName

DOM定位器將

dom=document.getElementById('ctl00_Content_ctl00_Login2_UserName')

+0

我檢查了兩者都有效。 做DOM和CSS [b]總是[/ b]使用ID?如果沒有ID,我可以使用DOM和CSS嗎? – Prostak 2010-10-14 17:59:22

+0

硒是偉大的,它允許您使用幾乎所有的屬性來查找頁面上的元素。如果你想通過CSS類的東西這將是CSS = .className或DOM DOM = document.getElementsByClassName( '類')indexOfItem] – AutomatedTester 2010-10-15 07:37:12

0

制定的CSS標識符將是另一種方式:

css=input[id=ctl00_Content_ctl00_Login2_UserName] 

如果你是使用IDE制定標識符並單擊「查找」按鈕以確保IDE(和RC,反過來)可以訪問UI元素。

+0

CSS =#ctl00_Content_ctl00_Login2_UserName CSS =輸入[ID = ctl00_Content_ctl00_Login2_UserName] 你們給了我兩個版本的CSS定位器,他們都工作。還有其他方法嗎?我在哪裏可以瞭解更多關於這些CSS定位器格式的信息? – Prostak 2010-10-14 18:03:05

0

您可以使用firepath。這是一個螢火蟲擴展,非常適合製作CSS定位器。

0

硒,更好的方法來選擇asp.net(之前4.0)元素網站是使用XPath像:

//輸入[含有(@ ID, '用戶名')]

如果按照其他地方的建議指定完整ID,則只要將控件包裹在另一個面板中,定位器就會失敗。當然,如果你有一個包含UserName的ID的另一個輸入,你的xpath也可能失敗,但是這比你添加另一個面板包裝器(例如在母版頁中)要小得多。

關於總是使用id,答案是否定的。您可以使用許多其他類型的選擇器,並且不需要在其中大部分使用ID。

請參閱Selenium reference並向下滾動到其中可以使用其他類型選擇器的「元素定位器」的位置。