如何找到Selenium元素的DOM和CSS地址?

时间:2010-10-13 23:01:14

标签: css dom selenium

我有一个以下元素(登录框):

<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,我认为也可以通过 DOM CSS 点击该元素。我该怎么做?是否有一个简单的工具(浏览器插件)可用于此目的?我只是不想被id和xpath限制。

4 个答案:

答案 0 :(得分:1)

CSS定位器将是

css=#ctl00_Content_ctl00_Login2_UserName

DOM定位器将

dom=document.getElementById('ctl00_Content_ctl00_Login2_UserName')

答案 1 :(得分:0)

制定css标识符的另一种方法是:

css=input[id=ctl00_Content_ctl00_Login2_UserName]

如果您使用的是IDE,请制定标识符并单击“查找”按钮以确保IDE(以及RC)可以访问UI元素。

答案 2 :(得分:0)

您可以使用firepath。这是一个firebug扩展,非常适合制定CSS定位器。

答案 3 :(得分:0)

在Selenium中,为asp.net(4.0之前的)网站选择元素的更好方法是使用xpath:

//输入[含有(@ ID, '用户名')]

如果您在其他位置指定完整ID,则只要将控件包装在另一个面板中,定位器就会失败。当然,如果你的另一个输入的id包含UserName,你的xpath也会失败,但是这比你添加另一个面板包装的可能性要小得多(例如在一个主页中)。

关于始终使用id,答案是否定的。您可以使用许多其他类型的选择器,并且在大多数选择器中不需要使用ID。

请参阅Selenium reference并向下滚动到可以使用的其他类型选择器的“元素定位器”。