根据 最全面的官方文档: http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
-
css
=cssSelectorSyntax
:
Select the element using css selectors. Please refer to CSS2 selectors
, CSS3 selectors
for more information. You can also check the TestCssLocators test in
the selenium test suite for an example of usage, which is included in
the downloaded selenium core package.
- css=a[href="#id3"]
- css=span#firstChild + span
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.isElementPresent("css=html:root"));
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-child(2n)"), "span2");
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-child(2)"), "span2");
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-child(-n+6)"), "span1");
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-last-child(4n+1)"), "span4");
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-last-child(2)"), "div3");
verifyEquals(selenium.getText("css=div#structuralPseudo :nth-last-child(-n+6)"), "span3");
verifyEquals(selenium.getText("css=div#structuralPseudo :first-child"), "span1");
verifyEquals(selenium.getText("css=div#structuralPseudo :last-child"), "div4");
verifyEquals(selenium.getText("css=div#onlyChild span:only-child"), "only child");
verifyTrue(selenium.isElementPresent("css=span:empty"));
verifyEquals(selenium.getText("css=div#targetTest span:target"), "target");
verifyTrue(selenium.isElementPresent("css=input[type=\"text\"]:enabled"));
verifyTrue(selenium.isElementPresent("css=input[type=\"text\"]:disabled"));
verifyTrue(selenium.isElementPresent("css=input[type=\"checkbox\"]:checked"));
verifyEquals(selenium.getText("css=a:contains(\"zoo\")"), "foozoobar");
verifyEquals(selenium.getText("css=div#structuralPseudo span:not(:first-child)"), "span2");
verifyEquals(selenium.getText("css=div#structuralPseudo :not(span):not(:last-child)"), "div1");
// combinator test
verifyEquals(selenium.getText("css=div#combinatorTest span#firstChild ~ span"), "another child");
}
}
分享到:
相关推荐
### Selenium CSS Selector定位详解 #### 一、引言 在自动化测试领域,Selenium作为一款强大的工具被广泛应用于Web页面的交互操作与测试。而CSS选择器(CSS Selector)是Selenium进行页面元素定位的一种非常重要的...
Selenium2TestingTools:Beginner’sGuide PDF
python系列:Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版 json
- CSS选择器定位:使用CSS选择器,如`By.cssSelector(selector)`,例如`By.cssSelector("input.skin-search-button")`。 Selenium还支持链式定位,即通过一个元素找到另一个相关的元素,这在处理嵌套元素或者有关系...
根据提供的文件内容,本文将详细解释WebDriver、xpath、css selector的使用以及如何在自动化测试中选择页面元素。首先,我们需要理解WebDriver是一个自动化测试工具,用于Web应用程序的测试。它可以通过各种编程语言...
element = driver.find_element_by_css_selector('your_css_selector') info = element.text ``` **五、XPath和CSS选择器** 要准确地定位网页元素,你需要熟悉XPath和CSS选择器。它们是Web开发中的两种定位技术,...
Selenium设置了headless,导致cmd控制台不断输出CONSOLE信息 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') # 上面三行...
在Selenium自动化测试中,元素定位是至关重要的技术,它允许我们找到网页上的特定元素进行交互,例如点击、填写表单等。Selenium提供了一系列的定位策略,包括ID、Name、CSS选择器、XPath等,使得我们可以根据网页的...
与浏览HTML相比,Chrome:trade_mark:CSS选择器帮助程序使在网页上查找合适CSS选择器更加快捷,容易。 与其他旨在帮助您找到CSS选择器的工具不同,此扩展允许您手动选择选择器,以便它们可以与设计的页面结构更好地...
模拟键盘鼠标操作.mp46 Selenium进阶操作2-无界面浏览器设置.mp47 Selenium进阶操作3-切换子界面、同级界面和滚轴滚动.mp48 新浪财经股票数据挖掘背景介绍.mp49 通过Selenium获取新浪财经实时股价数据.mp410 补充...
【Selenium基础与实战】 Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它支持多种编程语言,如Java、Python、C#、Ruby等,并且与各种浏览器兼容,包括Chrome、Firefox、IE等。Selenium的...
selenium-java-3.141.59.jar selenium java自动化
let element = driver.find_element(By::Css("input[type='text']"))?; element.send_keys("Hello, Selenium-rs!")?; ``` 完成测试后,别忘了清理环境: ```rust driver.quit()?; ``` 由于 selenium-rs 是一个 ...
它可以作为智能编辑器来编写和验证xpath、cssSelector、Playwright选择器、jQuery和JSPath。SelectorHub还可以用于自动生成唯一的#xpath、css选择器和所有可能的选择器。 but,毕竟是机器生成的,路径有时候不是很...
Selenium虚拟机该存储库包含Vagrantfile ,其中包含selenium-grid vm。要求这些工具需要安装在您的机器上。如何使用克隆此存储库并从克隆的存储库内部执行vagrant up <vm> 。 使用 selenium hub url 运行 selenium ...
这门课程是Python爬虫JS逆向进阶课程,将教授学员如何使用Python爬虫技术和JS逆向技术获取网站数据。学习者将学习如何分析网站的JS代码,破解反爬虫机制,以及如何使用Selenium和PhantomJS等工具进行模拟登录和数据...
资源名称:Selenium测试实践-基于电子商务平台内容简介:自动化测试已经不是一个新名词,随着一些自动化测试工具的出现并且进入国内,自动化测试行业的发展很快。《Selenium测试实践:基于电子商务平台》对开源自动化...
Chapter 2: Finding Elements Chapter 3: Working with Elements Chapter 4: Working with Selenium API Chapter 5: Synchronizing Tests Chapter 6: Working with Alerts, Frames, and Windows Chapter 7: Data-...
【Python的selenium操作:判断元素是否存在】 在Python的自动化测试中,Selenium是一个非常强大的工具,用于模拟用户与网页的交互。Selenium库提供了一系列API,使得我们可以控制浏览器进行各种操作,例如点击按钮...
2. **CSS**:CSS(级联样式表)用于定义网页的布局和样式。CSS Selector Capture的核心功能就是解析和显示这些选择器。 3. **AngularJS**:一个流行的前端框架,可能会被扩展用作构建用户界面的一部分,提供数据绑定...