zoukankan      html  css  js  c++  java
  • Selenium基础教程(三)元素定位

      

    (一)Selenium定位方法

    Selenium提供了8种定位方式:

    8种定位方式 在Python selenium种对应的方法      
    id   find_element_by_id ( )
    name find_element_by_name ( )
    class name find_element_by_class_name ( )
    tag name find_element_by_tag_name ( )
    link text find_element_by_link_text ( )
    partial link text find_element_by_partial_link_text ( )
    xpath find_element_by_xpath ( )
    css selector find_element_by_css_selector ( )

    (二) 定位方法的 用法

    假如一个Web页面,通过Firefox浏览器前端工具,如 firebug 查看到一个元素的属性是这样的:

    <html>
      <head>
      <body link="#0000cc">
        <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
        <form id="form" class="fm" name="f" action="/s">
          <span class="soutu-btn"></span>
            <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">

    我们的目的是要定位input标签的输入框。

    • 通过id定位:
    dr.find_element_by_id("kw")
    
    • 通过name定位:
       dr.find_element_by_name("wd")
    
    • 通过class name定位:
       dr.find_element_by_class_name("s_ipt")
    
    • 通过tag name定位:
        dr.find_element_by_tag_name("input")
    
    • 通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
    dr.find_element_by_xpath("//*[@id='kw']")
    dr.find_element_by_xpath("//*[@name='wd']")
    dr.find_element_by_xpath("//input[@class='s_ipt']")
    dr.find_element_by_xpath("/html/body/form/span/input")
    dr.find_element_by_xpath("//span[@class='soutu-btn']/input")
    dr.find_element_by_xpath("//form[@id='form']/span/input")
    dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")

    通过css定位,css定位有N种写法,这里列几个常用写法:

    dr.find_element_by_css_selector("#kw")
    dr.find_element_by_css_selector("[name=wd]")
    dr.find_element_by_css_selector(".s_ipt")
    dr.find_element_by_css_selector("html > body > form > span > input")
    dr.find_element_by_css_selector("span.soutu-btn> input#kw")
    dr.find_element_by_css_selector("form#form > span > input")

    接下来,我们的页面上有一组文本链接。

    
    
    <a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a>
    <a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>
    
    
    • 通过link text定位:
    dr.find_element_by_link_text("新闻")
    dr.find_element_by_link_text("hao123")
    
    
    • 通过link text定位:
    dr.find_element_by_partial_link_text("新")
    dr.find_element_by_partial_link_text("hao")
    dr.find_element_by_partial_link_text("123")
    
    
     
  • 相关阅读:
    解决bash: less: command not found
    IDEA-相关插件使用
    如何理解多租户架构?
    mybatis自动生成model、dao及对应的mapper.xml文件
    IDEA设置提示生成序列化ID
    [DUBBO] qos-server can not bind localhost:22222错误解决
    @NotNull,@NotEmpty,@NotBlank区别
    (三)IDEA使用,功能面板
    PHP实现自己活了多少岁
    使用PHP函数输出前一天的时间和后一天的时间
  • 原文地址:https://www.cnblogs.com/tangbohu2008/p/12575447.html
Copyright © 2011-2022 走看看