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. win10虚拟机搭建Hadoop集群(已完结)

    1 在虚拟机安装 Ubuntu 2 安装网络工具 Ubuntu最小化安装没有 ifconfig命令 sudo apt-get install net-tools 3 Ubuntu修改网卡名字 修改网卡 ...

  2. CEPH 对象存储的系统池介绍

    RGW抽象来看就是基于rados集群之上的一个rados-client实例. Object和pool简述 Rados集群网上介绍的文章很多,这里就不一一叙述,主要要说明的是object和pool.在r ...

  3. 自定义itemCheckView

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  4. JavaFX 集成 Sqlite 和 Hibernate 开发爬虫应用

    目录 [隐藏] 0.1 前言: 0.2 界面 0.3 Maven 环境 0.4 项目结构 0.5 整合 Hibernate 0.5.1 SQLiteDialect.java 数据库方言代码 0.5.2 ...

  5. 简易数据分析 09 | Web Scraper 自动控制抓取数量 & Web Scraper 父子选择器

    这是简易数据分析系列的第 9 篇文章. 今天我们说说 Web Scraper 的一些小功能:自动控制 Web Scraper 抓取数量和 Web Scraper 的父子选择器. 如何只抓取前 100 ...

  6. JavaScript的event对象

    JavaScript的event对象中 event.target指代的是:触发事件的元素 event.currentTarget指代的是:事件绑定的元素 <!DOCTYPE html> & ...

  7. react-native 入门基础介绍

    目录 安装 项目 主要目录结构 入口 Home模块 Coobook模块 List模块 novel模块 相关参考 一个简单的demo,用于介绍react-native相关基础信息,主要是针对有兴趣的同学 ...

  8. JS闪电打字特效

    HTML <div class="page page-thunder-to-text"> <input id="input" type=&qu ...

  9. (一)c#Winform自定义控件-基类控件

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  10. Cocos Creator经典游戏制作之:信使(The Messenger)

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...