• 超全selenium元素定位XPath、CSS


    说明:在HTML页面中,

    是一个标签,

    hello

    是一个元素,元素由一个开始的标签和结束的标签组成。标签包含属性名color,属性值为red。

    id定位

    说明:CSS的id选择器,id常用于JS操作DOM节点对象。当同个id被多次引用时,通过getElementById方法获取到的是在文档中第一个出现该id的标签(DOM节点对象),因此id一般只被引用于一个标签。

    示例:

    <input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
    

    定位:

    input = find_element_by_id("su")
    

    class定位

    说明:CSS的.class选择器,用于包装一组样式和布局供标签引用,常被复用于多个标签,且多个class可同时作用于同一个标签(多个class通过空格隔开,如:class="btn self-btn bg s_btn")。

    1. 单个clsss示例:
    <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
    

    定位:

    input = find_element_by_class("s_ipt")
    
    1. 多个class定位示例:
    <input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
    

    定位:当标签被多个class作用时,此时不推荐使用class定位,因为通常会定位到多个元素,可通过XPath定位和CSS定位代替。

    注意:class定位只能使用一个class,而XPath定位和CSS定位则需要输入所有class

    # class定位
    input_1 = find_element_by_class("btn")
    input_2 = find_element_by_class("self-btn")
    input_3 = find_element_by_class("bg s_btn")
    # XPath定位
    input_4 = find_element_by_Xpath('//input[@class="btn self-btn bg s_btn"]')
    # CSS定位
    input_5 = find_element_by_css('input[class="btn self-btn bg s_btn"]')
    

    name定位

    说明:HTML标签中name属性相当于一个变量名,value属性相当于一个变量值,在JS中以及向网站后端传送参数时,与value一起用,比如name是“color”,value是“red”,那么就会有参数color=“red”

    示例:

    <input id="kw" name="wd" class="s_ipt" value="输入框的内容" maxlength="255" autocomplete="off">
    

    定位:

    input = find_element_by_name("wd")
    

    tag定位

    说明:根据标签名称定位,常被用来定位一类功能,HTML页面中有很多相同的标签,因此很少用tag定位单个元素。

    示例: