zoukankan      html  css  js  c++  java
  • selenium 基础之定位方式

    selenium 基础之定位方式 

    selenium 基础 18种定位方式 *****

        18种定位  复数8种  单数8种  底层2种

    # api讲解   **

    工作中需要可以查资料。

    # xpath怎么写   ****

    Xpath是xml路径语言是通过元素路径来查找这个标签的元素。

    (如在火狐浏览器中,右键firebug查看元素中的firepath中查找尝试)

        //* 代表获取全部元素

        //*[@id='i1']  @代表标签的属性(引号单双都可)

        //*[@placeholder='请通过ID定位元素']

        //input 获取全部input标签元素

        //input[@id='i1'] 比//*快

        //div[@class='inner']

        // div[@ class ='inner'][1] 当出现重复时可以使用下标 角标从1开始

        // div[@ class ='driver'][1] / div[@ class ='inner'][1] 通过找到父级唯一 在向下继续查找

        //*[@type='text' and @id='i1'] 通过逻辑语言定位  and并列多个条件

        在取属性定位时 要选择唯一属性进行定位

    # css selector 怎么写 *****

    实际是HTML的css选择器的标签定位。(firebug中将xpath改为css)

        id定位  通过 #i1

        class定位 .inner

        css selector ####定位方式不支持角标定位

        input 标签选择器 定位到html种所有的input标签

        div.inner 通过先定位到div标签 在在div标签中查找class 为inner

        <div class='inner active'></div>  #多个active的css样式

        .inner.active 通过多个class定位

        input#i1 先定位到input 标签 在input标签中查找id为i1

        div.driver>div>input 大于号代表递进一层

        [id='i1'] 属性定位 这里的属性可以为标签中任意属性

        input[id='i1'] 先定位input 在定位id为i1

        [type='text'][id='i1'] 多种属性定位

        [placeholder^='请输入'] 以什么开头

        [placeholder$='元素'] 以什么为结尾

        [placeholder*='ID'] 包含

    # PO思想  pageobj 针对ui自动化难以维护的处理思想*****

    # case 与原始数据相分离  也是解耦  这是自动化的思想

    # 等待方式:显示等待  time.sleep()  隐士等待

    '''

    # 导入

    from selenium import webdriver

    # 实例化浏览器  启动浏览器

    driver = webdriver.Chrome()

    # service client 经典模型(原理) 代码相当于客户端 浏览器相当于服务端 通过http请求,sessionid创建一个通道,传递值

    # 以HTTP协议发送请求

    driver.get('http://ui.imdsx.cn/uitester/')

    # id定位

    # el = driver.find_element_by_id('i1')    ###通过id定位元素

    # el.send_keys('xxxxx')

    # class 定位

    # el = driver.find_element_by_class_name('classname')

    # el.send_keys('xxx')

    # css selector 定位

    # el = driver.find_element_by_css_selector('#i1')

    # el.send_keys('xxxxxx')

    # name 定位  标签中的name属性定位

    # el = driver.find_element_by_name('name')

    # el.send_keys('xxxxx')

    # link_text a标签文本内容

    # el = driver.find_element_by_link_text('跳转大师兄博客地址')

    # el.click()

    # link_text_pxxxxx 模糊linktext匹配

    # 跳转到最上面

    import time

    time.sleep(1)

    driver.execute_script('window.scrollTo(0,0);')   ###执行js  移动滚动轴到最上面

    time.sleep(1)

    # el = driver.find_element_by_partial_link_text('跳转大师兄')  ###模糊匹配

    # el.click()

    # xpath 定位

    # el = driver.find_element_by_xpath("//input[@placeholder='请通过XPATH定位元素']")

    # el.send_keys('xxxxxx')

    # tag_name  标签

    # el = driver.find_element_by_tag_name('input')

    # el.send_keys('xxxxxxxxxx')

    # 复数也是8种

    # 复数形式 返回的是一个列表 只要满足定位要求的都会返回 (作业:回家试一下全部的复数形式)

    # els = driver.find_elements_by_class_name('classname')

    # els[0].send_keys('xxxxxx')

    # 单数8种 复数8种 最后两种是前面16种的底层封装

    # #######工作中用find css selector##########(只有需要取角标的使用xpath 它为xml语言需要转化html而css就可被html直接解析)

    # driver.find_elements_by_class_name()

  • 相关阅读:
    elasticsearch 启动
    经纬度解析API
    http://t.cn/xxxxx的短链接如何生成?
    IIS+PHP上传文件大小限制和上传时间限制,iis7和iis8上传文件大小限制和上传时间限制
    WIN2003+IIS6环境SSL证书的安装
    如何创建文件名前带点的文件夹,文件夹名字带点
    解决MYSQL的错误:Got a packet bigger than 'max_allowed_packet' bytes
    php 设置临时内存和超时设置脚本最大执行时间
    谷歌地图 API 开发之获取坐标以及街道详情
    隐藏 google 地图 Logo 隐藏 百度 地图 Logo
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9294725.html
Copyright © 2011-2022 走看看