`
sg552
  • 浏览: 620036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18709
社区版块
存档分类
最新评论

selenium 进阶2: CSS SELECTOR 的完整版。

阅读更多

根据 最全面的官方文档: 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 CSS Selector定位详解 #### 一、引言 在自动化测试领域,Selenium作为一款强大的工具被广泛应用于Web页面的交互操作与测试。而CSS选择器(CSS Selector)是Selenium进行页面元素定位的一种非常重要的...

    Selenium2TestingTools:Beginner’sGuide

    Selenium2TestingTools:Beginner’sGuide PDF

    python系列:Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版 json

    python系列:Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版 json

    selenium学习3:元素定位方法.docx

    - CSS选择器定位:使用CSS选择器,如`By.cssSelector(selector)`,例如`By.cssSelector("input.skin-search-button")`。 Selenium还支持链式定位,即通过一个元素找到另一个相关的元素,这在处理嵌套元素或者有关系...

    WebDriver xpath css selector

    根据提供的文件内容,本文将详细解释WebDriver、xpath、css selector的使用以及如何在自动化测试中选择页面元素。首先,我们需要理解WebDriver是一个自动化测试工具,用于Web应用程序的测试。它可以通过各种编程语言...

    python+selenium动态实战:抓取京东商城信息

    element = driver.find_element_by_css_selector('your_css_selector') info = element.text ``` **五、XPath和CSS选择器** 要准确地定位网页元素,你需要熟悉XPath和CSS选择器。它们是Web开发中的两种定位技术,...

    Selenium关闭INFO:CONSOLE提示的解决

     Selenium设置了headless,导致cmd控制台不断输出CONSOLE信息 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') # 上面三行...

    selenium学习3:元素定位方法.pdf

    在Selenium自动化测试中,元素定位是至关重要的技术,它允许我们找到网页上的特定元素进行交互,例如点击、填写表单等。Selenium提供了一系列的定位策略,包括ID、Name、CSS选择器、XPath等,使得我们可以根据网页的...

    CSS Selector Helper for Chrome:trade_mark:-crx插件

    与浏览HTML相比,Chrome:trade_mark:CSS选择器帮助程序使在网页上查找合适CSS选择器更加快捷,容易。 与其他旨在帮助您找到CSS选择器的工具不同,此扩展允许您手动选择选择器,以便它们可以与设计的页面结构更好地...

    Python爬虫进阶视频+商业案例实战.zip

    模拟键盘鼠标操作.mp46 Selenium进阶操作2-无界面浏览器设置.mp47 Selenium进阶操作3-切换子界面、同级界面和滚轴滚动.mp48 新浪财经股票数据挖掘背景介绍.mp49 通过Selenium获取新浪财经实时股价数据.mp410 补充...

    selenium-practice:学习Selenium WebDriver:robot::microscope:

    【Selenium基础与实战】 Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它支持多种编程语言,如Java、Python、C#、Ruby等,并且与各种浏览器兼容,包括Chrome、Firefox、IE等。Selenium的...

    selenium-java-3.141.59

    selenium-java-3.141.59.jar selenium java自动化

    selenium-rs:Selenium Webdriver(WIP)的Rust客户端

    let element = driver.find_element(By::Css("input[type='text']"))?; element.send_keys("Hello, Selenium-rs!")?; ``` 完成测试后,别忘了清理环境: ```rust driver.quit()?; ``` 由于 selenium-rs 是一个 ...

    谷歌浏览器插件 SelectorsHub 编写和验证xpath、cssSelector、Playwright

    它可以作为智能编辑器来编写和验证xpath、cssSelector、Playwright选择器、jQuery和JSPath。SelectorHub还可以用于自动生成唯一的#xpath、css选择器和所有可能的选择器。 but,毕竟是机器生成的,路径有时候不是很...

    selenium-vm:Selenium网格虚拟机

    Selenium虚拟机该存储库包含Vagrantfile ,其中包含selenium-grid vm。要求这些工具需要安装在您的机器上。如何使用克隆此存储库并从克隆的存储库内部执行vagrant up <vm> 。 使用 selenium hub url 运行 selenium ...

    Python爬虫JS逆向进阶课程-课程网盘链接提取码下载 .txt

    这门课程是Python爬虫JS逆向进阶课程,将教授学员如何使用Python爬虫技术和JS逆向技术获取网站数据。学习者将学习如何分析网站的JS代码,破解反爬虫机制,以及如何使用Selenium和PhantomJS等工具进行模拟登录和数据...

    Selenium测试实践-基于电子商务平台

    资源名称:Selenium测试实践-基于电子商务平台内容简介:自动化测试已经不是一个新名词,随着一些自动化测试工具的出现并且进入国内,自动化测试行业的发展很快。《Selenium测试实践:基于电子商务平台》对开源自动化...

    Selenium.Testing.Tools.Cookbook.2nd.Edition.178439251

    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操作:判断元素是否存在+判断元素是否可以点击.zip

    【Python的selenium操作:判断元素是否存在】 在Python的自动化测试中,Selenium是一个非常强大的工具,用于模拟用户与网页的交互。Selenium库提供了一系列API,使得我们可以控制浏览器进行各种操作,例如点击按钮...

    chrome-css-selector-capture:Chrome扩展CSS Selector Capture的支持页面

    2. **CSS**:CSS(级联样式表)用于定义网页的布局和样式。CSS Selector Capture的核心功能就是解析和显示这些选择器。 3. **AngularJS**:一个流行的前端框架,可能会被扩展用作构建用户界面的一部分,提供数据绑定...

Global site tag (gtag.js) - Google Analytics