#识别元素并操作
#一般有如下几种方法,其中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()

最新文章

  1. handlebars自定义helper的写法
  2. 剑指Offer面试题:17.树的子结构
  3. CALayer 4 详解 -----转自李明杰
  4. 通过JavaScript改变HTML样式
  5. Python体验(09)-图形界面之Pannel和Sizer
  6. EXCEL中讲 10分10秒转换成610秒
  7. MySQL使用rand函数实现随机数[转]
  8. MVC 删除文件
  9. app卡顿问题检测--KMCGeigerCounter
  10. fseek()
  11. C#字符串的比较
  12. Oracle EBS-SQL (BOM-10):检查有BOM无计划员的数据.sql
  13. [CSS3] 学习笔记-CSS定位
  14. python 中 for 循环 if循环 break
  15. Java访问修饰符及其访问控制
  16. codeforces1152 div2
  17. 论文笔记:DARTS: Differentiable Architecture Search
  18. 小程序上传wx.uploadFile - 小程序请假
  19. 【hihocoder】 Magic Box
  20. JVM Scan

热门文章

  1. LVS+Keepalived(DR模式)学习笔记
  2. 04 Memcached过期机制与删除机制
  3. android 小游戏之数字猜猜
  4. 脑法之中的一个 --- DEBUG与搜索算法
  5. 【python】-- 多进程的基本语法 、进程间数据交互与共享、进程锁和进程池的使用
  6. Linux学习路线指南
  7. android禁止横屏
  8. java基础入门之数组排序冒泡法
  9. Android动画效果animation
  10. SVM学习笔记(一)