1. 想对网页上的元素进行操作,首先需要定位到元素。

以百度首页为例:

输入以下代码,打开百度首页:

# coding = gbk
from selenium import webdriver chrome_driver_path = "C:\Python27\selenium\webdriver\chromedriver\chromedriver"
global browser
browser = webdriver.Chrome(chrome_driver_path)
url_int = "https://www.baidu.com/"
browser.get(url_int)
print "Open baidu"

2. 在打开的百度首页,右键点击,选择“查看网页源代码”。

以下网页源代码是与百度输入框和“百度一下”按钮有关的,先提取在这里,方便后续定位。

<span class="bg s_ipt_wr"><input id="kw" name="wd" class="s_ipt" value="" maxlength="" autocomplete="off"></span><span class="bg s_btn_wr"><input type="submit" id="su" value="百度一下" class="bg s_btn"></span>

 3. 定位百度输入框

通过id定位:

browser.find_element_by_id("kw")

通过name定位:

browser.find_element_by_name("wd")

通过标签名tag_name定位:

browser.find_element_by_tag_name("input")

通过class_name定位:

browser.find_element_by_class_name("bg_s_btn_wr")

通过css定位:

  • 以id定位:
browser.find_element_by_css_selector("a[id=\"kw\"]")
  • 以name定位:
browser.find_element_by_css_selector("a[name=\"wd\"]")

通过XPath定位:(XPath是一种在XML文档中定位元素的语言)

  • attribute属性定位(定位input标签下,id=kw的元素):
browser.find_element_by_xpath("//input[@id='kw']")
  • id相关性定位(/form/span/input层级标签下,div标签下,id=fm的元素):
browser.find_element_by_xpath("//div[@id='fm']/form/span/input")
  • id为check的tr,定位它的第2个td:
browser.find_element_by_xpath("tr[@id='check']/td[2]")
  • position位置定位(第7个tr里面的第2个td):
browser.find_element_by_xpath("//tr[7]/td[2]")
  • href水平参考定位(a标签下,查找包含‘网页’的文本text元素):
browser.find_element_by_xpath("//a[contains(text(),'网页')]")
  • link定位(a标签下,查找链接为'href='http://www.baidu.com/'的元素):
browser.find_element_by_xpath("//a[@href='http://www.baidu.com']")

通过link定位(可以查找文字链接,打开贴吧链接):

browser.find_element_by_link_text("贴吧")
browser.find_element_by_partial_link_text("贴")

 4. 定位”百度一下“按钮

通过class_name定位:

browser.find_element_by_class_name("bg_s_btn_wr")

更多参考资料,请参考:

http://www.cnblogs.com/qingchunjun/p/4208159.html

最新文章

  1. java servlet
  2. salesforce 零基础开发入门学习(十一)sObject及Schema深入
  3. [转]C#面试题
  4. [技巧] 解决Win7下VMware中vmx86.sys报错的问题
  5. CC2540开发板学习笔记(七)&mdash;&mdash; 睡眠唤醒
  6. 【Python】django模型models的外键关联使用
  7. PHP利用微信跳转的Code参数获取用户的openid
  8. 设置tabbar的角标与第三方库Masonry的基本使用
  9. 20150706 js之定时器
  10. Golang:使用自定义模板发送邮件
  11. [Day18]集合框架Collection、迭代器、增强for循环以及泛型
  12. PHP文件基本操作及文件的上传和下载
  13. JQuery和ASP.NET分别实现级联下拉框效果
  14. html对a标签的运用以及属性,img图像标签的属性及应用
  15. HTML标签之marquee
  16. 在pycharm中启动Django服务器
  17. win10开始菜单打不开,右下角时间点不开等问题
  18. [Git] 解决 insufficient permission for adding an object to repository database
  19. ruby大神与菜鸟的代码区别
  20. phantomJs页面操作

热门文章

  1. 渐进式web应用开发-- 使用后台同步保证离线功能(六)
  2. python整形及浮点型求余数的区别
  3. Mobile game forensics
  4. Linux基础进程管理优先级
  5. HackBar收费版绕过
  6. 12、面向对象的思想(OOP)
  7. Go中sync包学习
  8. manifest.json 解析--手机web app开发笔记(三-2)
  9. Linux--shell的基本特性--01
  10. Javascript中的基本数据类型,如何判断数据类型,作用域链的理解