日期:2014-05-17 浏览次数:20786 次
根据 最全面的官方文档: http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
?
Currently the css selector locator supports all css1, css2 and css3 selectors except namespace in css3, some pseudo classes(:nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :visited, :hover, :active, :focus, :indeterminate) and pseudo elements(::first-line, ::first-letter, ::selection, ::before, ::after).
然后,我们找到其中提到的 "TestCssLocators" 这个文件:
?
http://code.google.com/p/selenium/source/browse/trunk/selenium/test/java/com/thoughtworks/selenium/corebased/TestCssLocators.java?r=10587
?
package com.thoughtworks.selenium.corebased;
import com.thoughtworks.selenium.InternalSelenseTestNgBase;
import org.testng.annotations.Test;
public class TestCssLocators extends InternalSelenseTestNgBase {
@Test public void testCssLocators() throws Exception {
// Unimplemented features:
// namespace
// pseudo element
// ::first-line
// ::first-letter
// ::selection
// ::before
// ::after
// pseudo class including:
// :nth-of-type
// :nth-last-of-type
// :first-of-type
// :last-of-type
// :only-of-type
// :visited
// :hover
// :active
// :focus
// :indeterminate
//
selenium.open("../tests/html/test_locators.html");
// css2 selector test
// universal selector
verifyTrue(selenium.isElementPresent("css=*"));
// only element type
verifyEquals(selenium.getText("css=p"), "this is the first element in the document");
verifyEquals(selenium.getText("css=a"), "this is the first element");
// id selector
verifyEquals(selenium.getText("css=a#id3"), "this is the third element");
// attribute selector
verifyTrue(selenium.isElementPresent("css=input[name]"));
verifyEquals(selenium.getText("css=a[href=\"#id3\"]"), "this is the third element");
verifyFalse(selenium.isElementPresent("css=span[selenium:foo]"));
verifyEquals(selenium.getText("css=a[class~=\"class2\"]"), "this is the fifth element");
verifyEquals(selenium.getText("css=a[lang|=\"en\"]"), "this is the sixth element");
// class selector
verifyTrue(selenium.isElementPresent("css=a.a1"));
// pseudo class selector
verifyEquals(selenium.getText("css=th:first-child"), "theHeaderText");
verifyEquals(selenium.getText("css=a:lang(en)"), "this is the first element");
verifyEquals(selenium.getText("css=#linkPseudoTest :link"), "link pseudo test");
// descendant combinator
verifyEquals(selenium.getText("css=div#combinatorTest a"), "and grandson");
// child combinator
verifyEquals(selenium.getText("css=div#combinatorTest > span"), "this is a child and grandson");
// preceding combinator
verifyEquals(selenium.getText("css=span#firstChild + span"), "another child");
// css3 selector test
// attribuite test
verifyEquals(selenium.getText("css=a[name^=\"foo\"]"), "foobar");
verifyEquals(selenium.getText("css=a[name$=\"foo\"]"), "barfoo");
verifyEquals(selenium.getText("css=a[name*=\"zoo\"]"), "foozoobar");
verifyEquals(selenium.getText("css=a[name*=\"name\"][alt]"), "this is the second element");
// pseudo class test
verifyTrue(selenium.isElemen