zoukankan      html  css  js  c++  java
  • 元素定位

    一,元素定位方式

    二,编写脚本的一般流程

      1.导入模块

        from selenium  import  webdriver

      2.创建浏览器对象

        driver=webdriver.Firefox()

      3.打开指定页面

        url="https://www.baidu.com"

        driver.get(url)

      4.操作页内元素

      5.关闭页面

        driver.quit()

    这是基本的一个流程,具体还要看题目要求。就套这个格式就行。

    三,单元素定位方式 ->  find_element_by_xxx( )

        1.id属性值定位

          前提:目标元素具有id属性

          driver.find_element_by_id(目标元素的id属性值)

          返回值:定位到的元素对象

        2.name定位方法

          前提:目标元素具有name属性

          driver.find_element_by_name(目标元素的一个name属性值)

          返回值:定位到的元素对象

        3.class_name定位方法

          前提:目标元素具有class属性

          driver.find_element_by_class_name(目标元素的一个class属性值)

          返回值:定位到的元素对象

          注意事项:如果目标元素的class属性值由多值组成,放在find_element_by_class_name( )参数位置上只能是其中一个

          例:from time import sleep

            from selenium import webdriver

            driver=webdriver.Firefox()

            url="file:///C:/Users/Administrator/Desktop/注册页面-素材/注册页面-素材/注册A.html"

             driver.get(url)

             telA_el=driver.find_element_by_class_name("telA") #页面代码中class="telA newcontent",参数位置上只能是其中一个,所以参数写telA

              telA_el.send_keys("18311111111")

             sleep(3)

        4.tag_name定位方式

          driver.find_element_by_tag_name(标签名称)

          返回值:定位到的一个元素对象

          注意:参数只能是合法的标签名称。即使页面中同类标签有若干个,本方法只返回该类标签中的第一个。

        5.link_text定位方式(全部查询)

          driver.find_element_by_link_text(超链接文本内容)

          例:

          

            driver.find_element_by_partial_link_text("访问 新浪 网站")

        6.partial_link_text定位方式(模糊查询)

          driver.find_element_by_patial_link_text(超链接文本内容)

          例:

          driver.find_element_by_partial_link_text("访问 ")

          driver.find_element_by_partial_link_text("新浪")

          driver.find_element_by_partial_link_text("网站")

          运行代码:

          from time import sleep

           from selenium import webdriver

          driver=webdriver.Firefox()
          url="file:///C:/Users/Administrator/Desktop/注册页面-素材/注册页面-素材/注册A.html"
          driver.get(url)
          userA_el=driver.find_element_by_link_text("访问 新浪 网站")
          userA_el.click()
          sleep(3)
       7.xpath定位 -> find_element_by_xpath( )
          xpath:HTML文件中目标标签的路径信息
          两种路径的描述方式:
             (1)绝对路径: /html/body/.....
                 注意事项: /后必须有内容,内容应该为标签名称或星号(表示任意类别的标签)
             (2)相对路径:
                 对标签的限定:限定的内容均放在[ ]中
                 <1> [@属性名]
                    利用元素属性:  [@属性名=属性值]--> //*[@id="userA"]
                    属性与逻辑结合: [@属性名1=属性值 and @属性名2=属性值]-->  //*[@id="telA" and @class="telA"]
                    层级与属性结合: //*[@id='p1']/input
                 <2> [数字]:数字从1开始
                    定位的是相对于目标标签的父级标签中同类标签的第几个。
                    例://p[1]/input[1]
            
                 <3> [函数]
                    1)//*[text()="xxx"] :文本内容是xxx的元素
                    2)//*[starts-with(@attribule,'xxx')] :属性以"xxx"开头的元素
                    3)//*[contains(@attribute,'Sxxx')] :属性中含有"xxx"的元素
     
                  例1: from time import sleep

                        from selenium import webdriver

                      driver=webdriver.Firefox()
                      url="file:///C:/Users/Administrator/Desktop/注册页面-素材/注册页面-素材/注册A.html"
                      driver.get(url)
                      driver=driver.find_element_by_xpath("//*[text()='访问 新浪 网站'] ")
                      driver.click()

                  例2:    from time import sleep

                      from selenium import webdriver
                      driver=webdriver.Firefox()
                      url="file:///C:/Users/Administrator/Desktop/注册页面-素材/注册页面-素材/注册A.html"
                      driver.get(url)
                      driver=driver.find_element_by_xpath("//*[starts-with(@id,'f')]")
                      driver.click()

                  例3:from time import sleep

                     from selenium import webdriver
                    driver=webdriver.Firefox()
                    url="file:///C:/Users/Administrator/Desktop/注册页面-素材/注册页面-素材/注册A.html"
                    driver.get(url)
                    driver=driver.find_element_by_xpath("//*[contains(@id,'wA')] ")
                    driver.click()

     
     
     
     
            
               

      

      

          

     

  • 相关阅读:
    批量处理进程
    稳定寻找app package和activity的办法
    python yield
    记一次 Appium socket hang up 问题 以及小米手机关闭对uiautomator2.server的省电策略
    MySQL数据库连接不上、密码修改问题
    二、观察者模式(Observer Pattern)《HeadFirst设计模式》读书笔记
    一、策略模式(Strategy Pattern)《HeadFirst设计模式》读书笔记
    Java Scanner类中next()和nextLine()方法的区别
    Mybatis 9、Lombok
    Mybatis 8、使用注解开发
  • 原文地址:https://www.cnblogs.com/huyaxue/p/10003516.html
Copyright © 2011-2022 走看看