• 使用CSS选择器进行元素定位


            在selenium webdriver中,支持使用CSS选择器来进行元素定位,事实在真的投入工作,大量编辑用例和元素定位的时候,使用css 和 xpath才是经常需要用到的。
    之前有专门讲过使用xpath对元素定位的使用,下面要介绍css选择器来进行元素定位。

    【参见W3C官网说明】

    先看看css选择器定位的webdriver函数:
    1. def find_elements_by_css_selector(self, css_selector):
    2. """
    3. Finds elements by css selector.
    4. :Args:
    5. - css_selector: The css selector to use when finding elements.
    6. :Usage:
    7. driver.find_elements_by_css_selector('.foo')
    8. """
    9. return self.find_elements(by=By.CSS_SELECTOR, value=css_selector)

    常见语法

    CSS选择器用于选择你想要的元素的样式的模式。

    "CSS"列表示在CSS版本的属性定义(CSS1,CSS2,或对CSS3)。

    选择器示例示例说明CSS
    .class.intro选择所有class="intro"的元素1
    #id#firstname选择所有id="firstname"的元素1
    **选择所有元素2
    elementp选择所有<p>元素1
    element,elementdiv,p选择所有<div>元素和<p>元素1
    element elementdiv p选择<div>元素内的所有<p>元素1
    element>elementdiv>p选择所有父级是 <div> 元素的 <p> 元素2
    element+elementdiv+p选择所有紧接着<div>元素之后的<p>元素2
    [attribute][target]选择所有带有target属性元素2
    [attribute=value][target=-blank]选择所有使用target="-blank"的元素2
    [attribute~=value][title~=flower]选择标题属性包含单词"flower"的所有元素2
    [attribute|=language][lang|=en]选择一个lang属性的起始值="EN"的所有元素2
    element1~element2p~ul选择p元素之后同级的每一个ul元素3
    [attribute^=value]a[src^="https"]选择每一个src属性的值以"https"开头的元素3
    [attribute$=value]a[src$=".pdf"]选择每一个src属性的值以".pdf"结尾的元素3
    [attribute*=value]a[src*="44lan"]选择每一个src属性的值包含子字符串"44lan"的元素3
    :first-of-typep:first-of-type选择每个p元素是其父级的第一个p元素3
    :last-of-typep:last-of-type选择每个p元素是其父级的最后一个p元素3
    :only-of-typep:only-of-type选择每个p元素是其父级的唯一p元素3
    :only-childp:only-child选择每个p元素是其父级的唯一子元素3
    :nth-child(n)p:nth-child(2)选择每个p元素是其父级的第二个子元素3
    :nth-last-child(n)p:nth-last-child(2)选择每个p元素的是其父级的第二个子元素,从最后一个子项计数3
    :nth-of-type(n)p:nth-of-type(2)选择每个p元素是其父级的第二个p元素3
    :nth-last-of-type(n)p:nth-last-of-type(2)选择每个p元素的是其父级的第二个p元素,从最后一个子项计数3
    :last-childp:last-child选择每个p元素是其父级的最后一个子级。3
    :root:root选择文档的根元素3
    :emptyp:empty选择每个没有任何子级的p元素(包括文本节点)3
    :target#news:target选择当前活动的#news元素(包含该锚名称的点击的URL)3
    :enabledinput:enabled选择每一个已启用的输入元素3
    :disabledinput:disabled选择每一个禁用的输入元素3
    :checkedinput:checked选择每个选中的输入元素3
    :not(selector):not(p)选择每个并非p元素的元素3
    ::selection::selection匹配元素中被用户选中或处于高亮状态的部分3
    :out-of-range:out-of-range匹配值在指定区间之外的input元素3
    :in-range:in-range匹配值在指定区间之内的input元素3
    :read-write:read-write用于匹配可读及可写的元素3
    :read-only:read-only用于匹配设置 "readonly"(只读) 属性的元素3
    :optional:optional用于匹配可选的输入元素3
    :required:required用于匹配设置了 "required" 属性的元素3
    :valid:valid用于匹配输入值为合法的元素3
    :invalid:invalid用于匹配输入值为非法的元素3

  • 相关阅读:
    "ping: unknown host www.baidu.com"问题解决方式
    hive分区表中表字段操作
    hive常用函数
    spark书籍视频推荐
    pandas筛选排序
    pandas常用函数
    hive字符串函数
    Centos镜像下载
    记录操作 子查询 三表联查
    .net Excel转换DataSet
  • 原文地址:https://www.cnblogs.com/tsbc/p/6530493.html
Copyright © 2020-2023  润新知