测试的自我放逐

迷茫中探索

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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()

posted on 2018-07-11 15:28  软测小白6v  阅读(1574)  评论(0编辑  收藏  举报