zoukankan      html  css  js  c++  java
  • selenium中,8种 find element 方法

    1 -*- coding;utf-8 -*-
    2 from selenium import webdriver
    3 dr = webdriver.Chrome()
    4 dr.get("https://www.baidu.com")
    5 #有八种元素定位方法:
    6 #id, name, class name, tag name, link text,部分link text, xpath, css选择器

    其中,find_elements_by_xxx 获取的是一组元素

    前7种:

     1 <span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span>
     2     <span class="soutu-btn"></span>
     3     <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" value="123">
     4     <input></input>
     5 </span>
     6 <div id="u_sp" class="s-isindex-wrap s-sp-menu">
     7     <a href="http://news.baidu.com" target="_blank" class="mnav">超长的新闻名称</a>
     8 </div>
     9 
    10 #id
    11 dr.find_element_by_id("kw")
    12 #name
    13 dr.find_element_by_name("wd")
    14 #class name
    15 dr.find_element_by_class_name("s_ipt")
    16 #tag name (标签名称)
    17 dr.find_element_by_tag_name("input") #适用于只有一个input标签
    18 dr.find_elements_by_tag_name("input")[0].send_keys() #适用于多个input标签
    19 dr.find_element_by_tag_name("//span/input[0]") #通过父级元素
    20 
    21 #text link, 部分text link
    22 dr.find_elements_by_link_text("超长的新闻名称")
    23 dr.find_element_by_partial_link_text("新闻")
    24 
    25 
    26 #xpath
    27 dr.find_element_by_xpath("//input[@id='kw']") # 双斜杠表示不确定
    28 dr.find_element_by_xpath("/*[@id='kw']") # "*"表示所有元素
    29 dr.find_element_by_xpath("//input[@name='wd']")
    30 dr.find_element_by_xpath("//input[@class='s_ipt']")
    31 dr.find_element_by_xpath("//input[@value='123']")
    32 
    33 dr.find_element_by_xpath("//span/input[0]")#通过父级
    34 dr.find_element_by_xpath("//span[@class='bg s_ipt_wr']/input[0]")#通过父级
    35 
    36 也可用多种属性集合
    37 dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")

    CSS选择器:

     1 <span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span>
     2     <span class="soutu-btn"></span>
     3     <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" value="123">
     4 </span>
     5 
     6 #class 用“.”
     7 dr.find_element_by_css_selector(".s_ipt")
     8 
     9 #id 用“#”
    10 dr.find_element_by_css_selector("#kw")
    11 
    12 #name
    13 dr.find_element_by_css_selector("[name=wd]")
    14 dr.find_element_by_css_selector("name='wd'")
    15 dr.find_element_by_css_selector("//input[name='wd']")
    16 
    17 #组合
    18 dr.find_element_by_css_selector("span>input.s_ipt") #通过父级
    19 dr.find_element_by_css_selector("span>input#kw")
    20 dr.find_element_by_css_selector("span.s_ipt_wr>input")
  • 相关阅读:
    查找——图文翔解HashTree(哈希树)
    比較JS合并数组的各种方法及其优劣
    PTA 是否同一棵二叉搜索树(25 分)
    PTA 最大子列和问题(10 分)
    PTA PAT排名汇总(25 分)
    PTA PAT排名汇总(25 分)
    PTA 说反话-加强版(20 分)(字符串处理)
    PTA 说反话-加强版(20 分)(字符串处理)
    Tarjan模版(链式向前星表示方法)
    Tarjan模版(链式向前星表示方法)
  • 原文地址:https://www.cnblogs.com/nnniki/p/9633437.html
Copyright © 2011-2022 走看看