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

利用python定位网页上的元素的更多相关文章

  1. css015 定位网页上的元素

    css015 定位网页上的元素 一.   定位属性的功能 1.         四中类型的定位 Position: absolute relative fixed static a. 绝对定位 绝对定 ...

  2. CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

    基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...

  3. 爬虫学习笔记(1)-- 利用Python从网页抓取数据

    最近想从一个网站上下载资源,懒得一个个的点击下载了,想写一个爬虫把程序全部下载下来,在这里做一个简单的记录 Python的基础语法在这里就不多做叙述了,黑马程序员上有一个基础的视频教学,可以跟着学习一 ...

  4. 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接

    最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...

  5. CSS定位网页中的元素

    relative相对定位 偏移设置:left.right.top.bottom 值单位:px 元素的规律: 相对定位元素的规律 设置相对定位的盒子会相对它原来的位置通过指定偏移,到达新的位置. 设置相 ...

  6. Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记

    涉及关键词:requests库 requests.post方法 cookies登陆 version 1.5(附录):使用post方法登陆豆瓣,成功! 缺点:无法获得登陆成功后的cookie,要使用js ...

  7. Python从网页上爬取图片

    在搜索壁纸的时候,想把壁纸保存到本地,一张一张的保存太过麻烦,所以想到用Python来爬取壁纸. 设计思路: 1.首先先去找有壁纸的网页: http://www.acfun.cn/a/ac334521 ...

  8. 利用python监测linux上的服务(简单实现服务宕掉自动发送邮件)

    python 这里用到了四个python 模块 : import time (时间模块) import re (正则模块) import socket (监测端口模块)import yagmail ( ...

  9. python下载网页上公开数据集

    URL很简单,数据集分散开在一个URL页面上,单个用手下载很慢,这样可以用python辅助下载: 问题:很多国外的数据集,收到网络波动的影响很大,最好可以添加一个如果失败就继续请求的逻辑,这里还没有实 ...

随机推荐

  1. Selenium浏览器自动化测试框架

    selenium简介 介绍 Selenium [1]  是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 1 ...

  2. JS面向对象编程(三):非构造函数的继承

    一.什么是"非构造函数"的继承?            现在有一个对象,叫"中国人".            var Chinese = {           ...

  3. Web Worker 多线程

    Web Workers多线程 1  浏览器把所有事件都通过操作系统安排到事件队列中(例如:你去一个·窗口买菜,需要排队):浏览器使用单线程处理队列中的事件和执行用户代码(也就是单线程:web work ...

  4. c&c服务器(command and control server)

    远程命令和控制服务器,目标机器可以接收来自服务器的命令,从而达到服务器控制目标机器的目的.该方法常用于病毒木马控制被感染的机器.

  5. 【Spring源码解析】—— 委派模式的理解和使用

    一.什么是委派模式 委派模式,是指什么呢?从字面含义理解,委派就是委托安排的意思,委派模式就是在做具体某件事情的过程中,交给其他人来做,这个事件就是在我的完整链路上的一部分,但是复杂度较高的情况下或者 ...

  6. ES2019 / ES10有什么新功能?

    ECMAScript(简称ES)是ECMA International在ECMA-262和ISO / IEC 16262中标准化的脚本语言规范.它是为了标准化JavaScript语言而创建的,以便从浏 ...

  7. FormLayout and FormData

    FormLayout通过为小窗口部件创建四边的Form附加值(attachment)来进行工作,并且把这些Form附加值存储在布局数据中.一个附加值让一个小窗口部件指定的一边粘贴(attach)到父C ...

  8. 在一个含有1-n的序列中,每次找到第Ki小的数,并把它删除(线段树)

    提交链接 Data structure is one of the basic skills for Computer Science students, which is a particular ...

  9. jvisualvm/Jconsole监控WAS中间件

    1.登录was控制台https://196.168.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用J ...

  10. WebService1

    一.什么是WebService(来源百度百科) Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述. ...