当前位置 博文首页 > LucyGill的博客:Selenium webdriver 元素定位方法总结——转自C

    LucyGill的博客:Selenium webdriver 元素定位方法总结——转自C

    作者:[db:作者] 时间:2021-09-05 19:19

    原文作者给了很多例子,容易上手。

    本文转自CSDN,作者 我是6毛

    原文链接如下:https://blog.csdn.net/lhyup/article/details/51800655


    <input?id="kw"?class="s_ipt"?autocomplete="off"?maxlength="255"?value=""?name="wd"/>

    <a class="mnav" name="test" href="http://news.baidu.com">新闻板块</a>

    上面是百度输入框的代码

    from selenium import webdriver

    1. find_element_by_id("kw")

    2. find_element_by_name("wd")

    3. find_element_by_class_name("s_ipt")

    4. find_element_by_tag_name("input")

    5. find_element_by_link_text("新闻板块")

    6. find_element_by_partial_link_text("新")

    7.1 XPath-绝对路径定位:

    绝对路径类似于你家的地址:XX市XX区XX路XX号;也就是说从最外层的标签开始往里数就可以了

    例如百度输入框的绝对路径:

    find_element_by_xpath("html/body/div[3]/div/div/div/div/form/span/input")

    div[3] 代表当前层级第3个div

    7.2 XPath-利用元素属性定位

    find_element_by_xpath("//input[@id='kw']")

    find_element_by_xpath("//input[@name='wd']")

    find_element_by_xpath("//*[@id='kw']")

    //input表示查找页面上所有的input元素

    //*表示查找页面上所有元素

    //input[1]表示查找页面上第一个input元素

    //form[1]/input 表示查找第一个form元素下一级的input元素

    //form[1]//input 表示查找页面上第一个form元素下的所有input元素,不管嵌套了多少层

    //input[@id='kw' and @class='su'] 可以用 and 连接多个属性来唯一标识一个元素

    Firepath可以生成XPath

    8.css定位

    find_element_by_css_selector("#kw")??#符号表示通过ID属性来定位元素

    find_element_by_css_selector(".s_ipt") ??点符号(.)表示通过class属性来定位元素

    find_element_by_css_selector("input")????通过Tag标签来定位元素时不需要任何符号

    find_element_by_css_selector("[id=kw]")??通过属性和属性值来定位元素,可以使用任意属性,例如?[type=submit]

    find_element_by_css_selector(“span>input”)??通过父子关系定位元素

    find_element_by_css_selector(“span+input”) 表示查找同一级紧挨着span的input元素

    以上几种方式还可以综合使用

    ??

    ?

    我个人喜欢用By定位元素

    要使用By需要先import

    from selenium.webdriver.common.by import By

    1. find_element(By.ID,"kw")

    2. find_element(By.NAME,"wd")

    3. find_element(By.CLASS_NAME,"s_ipt")

    4. find_element(By.TAG_NAME,"input")

    5. find_element(By.LINK_TEXT,"新闻板块“)

    6. find_element(By.PARTIAL_LINK_TEXT,"新”)

    7. find_element(By.XPATH,"//*[@class='s_ipt']")

    8. find_element(By.CSS_SELECTOR,“#kw”)
    ---------------------?
    作者:我是6毛?
    来源:CSDN?
    原文:https://blog.csdn.net/lhyup/article/details/51800655?
    版权声明:本文为博主原创文章,转载请附上博文链接!

    cs