#识别元素并操作
#一般有如下几种方法,其中id最为常用.这里需要注意识别元素一定要用唯一id

1.find_element_by_id("value")

#! /usr/bin/env python
#coding=utf-8 from selenium import webdriver
import time url = "http://www.baidu.com"
driver = webdriver.Firefox()
driver.get(url)
time.sleep(5) driver.find_element_by_id("kw").send_keys("博客园")
#模拟表单的提交按钮操作,新版百度搜索不需要这个了,他会自动搜索,再次看出ui的维护成本很高
#driver.find_element_by_id("kw").submit()

2.find_element_by_name("value")

#driver.find_element_by_name("wd").send_keys("博客园")

3.find_element_by_class_name("value")

#driver.find_element_by_class_name("s_ipt").send_keys("博客园")

4.find_element_by_link_text("value')

driver.get(url)
driver.find_element_by_link_text("新闻").click()
time.sleep(5) #对于超级连接比较长的可以尝试采用下面的方法,类似一种模糊匹配
driver.find_element_by_partial_link_text("首页").click()
time.sleep(5)

5.#xpath神器,理论上来说,没有path定位不到的元素
#这里使用firepath查看
#xpath你理解为树形结构就OK,我们也可以通过类似上下级的关系来一层层定位

#! /usr/bin/env python
#coding=utf-8 from selenium import webdriver
import time url = "http://www.baidu.com"
driver = webdriver.Firef
driver.get(url)
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("博客园")
#driver.find_element_by_id("su").submit()
time.sleep(5) driver.find_element_by_id("kw").clear()
time.sleep(5)
#返回
driver.back()
time.sleep(5)
#! /usr/bin/env python
#coding=utf-8 from selenium import webdriver
import time url = "http://www.baidu.com"
driver = webdriver.Firef
driver.get(url)
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("博客园")
#driver.find_element_by_id("su").submit()
time.sleep(5) driver.find_element_by_id("kw").clear()
time.sleep(5)
#返回
driver.back()
time.sleep(5)

6.利用两个元素属性进行唯一定位 and or,只适用于xpath

driver.find_element_by_xpath(".//*[@id='kw' and @name='wd']").send_keys("博客园")
time.sleep(5)

7.#当父类有多个一样的子类的时候,可以通过下标来定位,从1开始
#以搜索设置里的结果显示条数为例

driver.get("http://www.baidu.com/gaoji/preferences.html")
time.sleep(5)
#driver.find_element_by_xpath(".//*[@id='nr']/option[3]").click()
#除此之外还可以怎么定位?
driver.find_element_by_xpath(".//option[@value='50']").click()
time.sleep(5)

举例:

解释:

#通过id='nr'值的select元素,找到第三个input子元素
#driver.find_element_by_xpath(".//*[@id='nr']/option[3]").click()

#通过属性名为value且值为50的第三个option元素
driver.find_element_by_xpath(".//option[@value='50']").click()

Selenium-几种元素定位方式的更多相关文章

  1. 【python+selenium的web自动化】- 8种元素定位方式详解

    ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. ​ 说明:以下操作统 ...

  2. Java + Selenium + WebDriver八大元素定位方式

    UI自动化测试的第一步就是进行元素定位,下面给大家介绍一下Selenium + WebDriver的八大元素定位方式.现在我们就以百度搜索框为例进行元素定位,如下图: 一.By.name() Java ...

  3. 1、selenium 8大元素定位方式

    元素定位方式: id name css class_name tag_name partial_link link_text : driver. find_element_by_link_text(& ...

  4. Selenium系列(一) - 8种元素定位方式的详细解读

    安装Selenium和下载Driver 安装selenium pip3 install  selenium -i http://pypi.douban.com/simple --trusted-hos ...

  5. Selenium 八种元素定位方法

    前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...

  6. Selenium八种元素定位方法源码阅读

    接触过Selenium的都知道元素定位有八种方法,但用不同的方法在执行时有什么区别呢? 元素定位8种方法(Python版),当然还有每一个方法对应的find_elements方法 find_eleme ...

  7. Appium常用的3种元素定位方式

    以最右App为例 .apk文件网盘地址: 链接:https://pan.baidu.com/s/1L4MYkhpb5ECe8XeaneTx_Q 提取码:0jqm 1.find_element_by_i ...

  8. Selenium八种基本定位方式---基于python

    from selenium import  webdriver driver=webdriver.Firefox() driver.get("https://www.baidu.com&qu ...

  9. Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)

    此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...

随机推荐

  1. linux 参数内核

    优化Linux内核参数   转自:http://www.centoscn.com/CentOS/config/2013/0804/992.html vim /etc/sysctl.conf 1.net ...

  2. mybaits返回插入成功后的自增值

    mybaits返回插入成功后的自增值 在项目中,我们经常遇到这样的情况:insert语句成功后,需要自增的id值,这个时候,我们可以通过mybatis的 useGeneratedKeys 来实现,具体 ...

  3. python学习 02 元组

    元组和列表除了能不能修改外 定义单一元组还需要加逗号

  4. 编程算法 - 二叉树的最低公共祖先 代码(C)

    二叉树的最低公共祖先 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 二叉树的最低公共祖先(lowest common ancestor), 首先先序遍 ...

  5. iOS开发---业务逻辑

    iOS开发---业务逻辑   1. 业务逻辑 iOS的app开发的最终目的是要让用户使用, 用户使用app完成自己的事就是业务逻辑, 业务逻辑的是最显眼开发工作.但是业务逻辑对于开发任务来说, 只是露 ...

  6. ios推送服务,php服务端

    本文转载至http://my.oschina.net/AStar/blog/176531   生成证书 证书生成参考:https://parse.com/tutorials/ios-push-noti ...

  7. centOS6.2 最小安装下的无线网络配置

    一.安装wireless_tools,http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 二.vi / ...

  8. DELL inspiron1420 linux下的wifi驱动安装

    首先确定无线网卡类型: lspci -vnn -d 14e4: 比如我的网卡类型为 04:00.0 Network controller [0280]:Broadcom Corporation BCM ...

  9. wcf读取message内容

    private string MessageToString(ref Message message) { WebContentFormat messageFormat = this.GetMessa ...

  10. 【android】在Service的onStartCommand()中调用stopself()应该注意的问题

    在Service的onStartCommand()中调用stopself()后并不会立马destroy掉service,而是等onStartCommand()运行完才destroy. public c ...