元素定位器(Element Locators)告诉Selenium是向HTML中的哪一个元素发送命令。定位器的格式如下:
locatorType = argument
locatorType有:identifier、id(元素属性名称id)、name(元素属性名称name)、dom、xpath、link、css。我试过,元素属性class也可以的。
示例:
Commd | Target | Value |
Type | id=password1 | 123456 |
Type | name=password2 | 123456 |
Type | identifier=password3 | 123456 |
在有的情况下,定位器的格式可以省略掉显式的前缀(即没有“locatorType=”部分),省略了显式前缀时,Selenium使用以下定位器格式:
document.argument (等价于dom=argument)
//argument (等价于xpath=argument)
argument (等价于identifier=argument)
示例:
Commd | Target | Value |
Type | password1 | 123456 |
clickandwait | //a[@href="${wqy1}"] |
|
| |
|
元素定位器使用不同的locatorType时,定位方法如下:
首先查找@id的值为id的元素;如果没有找到,则查找@name的值为id的元素,如果存在多个,则选择第1个。(@id表示元素的属性名称id;@name表示元素的属性名称name)。
示例:
Commd | Target | Value |
Type | identifier =password3 | 123456 |
查找@id的值为id的元素。(@id表示元素的属性名称id)
示例:
Commd | Target | Value |
Type | id =password1 | 123456 |
查找@name的值为name的元素,如果存在多个,则选择第1个。(@name表示元素的属性名称name)。
示例:
Commd | Target | Value |
Type | name=password2 | 123456 |
当locatorType为name时,定位器表达式后面可以跟随一个或多个元素过滤器表达式,它们之间用空格进行分隔。如果过滤器表达式中没有指定过滤类型,则假定过滤类型为value。(过滤类型有value、index两种)。
如:
Commd | Target | Value |
click | name=username value=chenym | |
click | name=username chenym | |
(上面两句脚本是等价的)
(暂时还没有使用到)
通过检测指定字符串查找元素。这使得你可以通过JavaScript.贯穿HTML文档对象。注意在这个字符串中返回值不是必须的.
仅仅只需要确保这条语句是你块中的最后一条。
dom=document.forms['myForm'].myDropdown
dom=document.images[56]
dom=function foo() { return document.links[1]; }; foo();
通过XPath表达式定位元素。
xpath=//img[@alt='The image alt text']
xpath=//table[@id='table1']//tr[4]/td[2]
xpath=//a[contains(@href,'#id1')]
xpath=//a[contains(@href,'#id1')]/@class
xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td
xpath=//input[@name='name2' and @value='yes']
xpath=//*[text()="right"]
(暂时还没有使用到)
选择所包含的文字匹配指定式样的链接(锚)。
link=The link text
(暂时还没有使用到)
通过css选择器选择元素。请查询CSS2选择器,CSS3选择器以获得更多信息。在下载下来的selenium core package中的selenium test suite里的TestCssLocators test ,你同样可以查看到使用例子。
css=a[href="#id3"]
css=span#firstChild + span
当前css选择过滤器支持所有的css1,css2,css3,除了css3中一些虚拟类(:nth-of-type,:nth-last-of-type,:first-of-type,:last-of-type,:only-of-type,:visited,:hover,:active,:focus,:indeterminate)以及虚拟元素(::first-line,::first-letter,::selection,::before,::after)。