今天不到八点就到公司了,来的比较早,趁着有点时间,总结下web中的CSS、Xpath等路径定位定位的方式吧!

简单的介绍下xpath和css的定位

理论知识就不罗列了

还是利用博客园的首页、直接附上代码:

这个是xpath

 1 #!/usr/bin/env python
2 # -*- coding: utf_8 -*-
3
4 from learn_webdriver import Webdriver
5 from selenium import webdriver
6 from selenium.webdriver.common.action_chains import ActionChains
7 from time import sleep
8
9 browser_chrome = webdriver.Chrome(Webdriver.chrome())
10 browser_chrome.get("http://www.cnblogs.com/")
11
12 sleep(2)
13 ActionChains(browser_chrome).move_to_element(browser_chrome.find_element_by_xpath(".//li[@id='cate_item_2']")).perform()
14 # 鼠标悬停在左侧“编程语言”导航栏上
15 browser_chrome.find_element_by_xpath(".//a[@href='/cate/python/']").click()
16 sleep(2)
17 browser_chrome.quit()

XPath 是一门在 XML 文档中查找信息的语言

使用的是函数是  find_element_by_xpath

这里总结了xpath的表达式:

表达式

说明

案例

节点名称

选取节点下所有子节点

body

body 下所有子节点

/

从根节点选取

body/div

body 下所有 div 节点

//

匹配选择节点

不考虑位置

//div

不考虑位置的 div 节点

.

当前节点

 

..

当前节点的父节点

 

@

选取属性

.//li[@id='cate_item_2']

li节点 且属性id=cate_item_2

下面是css

 1 #!/usr/bin/env python
2 # -*- coding: utf_8 -*-
3
4 from learn_webdriver import Webdriver
5 from selenium import webdriver
6 from selenium.webdriver.common.action_chains import ActionChains
7 from time import sleep
8
9 browser_chrome = webdriver.Chrome(Webdriver.chrome())
10 browser_chrome.get("http://www.cnblogs.com/")
11
12 sleep(2)
13 ActionChains(browser_chrome).move_to_element(browser_chrome.find_element_by_css_selector("li[id = 'cate_item_2']")).perform()
14 # 鼠标悬停在左侧“编程语言”导航栏上
15 browser_chrome.find_element_by_css_selector("a[href = '/cate/python/").click()
16 sleep(2)
17 browser_chrome.quit()

css更加灵活一些

css使用的函数是 find_element_by_css_selector

web中的CSS、Xpath等路径定位方法学习的更多相关文章

  1. maven的setting.xml文件中只配置本地仓库路径的方法

    maven的setting.xml文件中只配置本地仓库路径的方法 即:settings标签下只有一个 localRepository标签,其他全部注释掉即可 <?xml version=&quo ...

  2. selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)

    跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...

  3. Selenium中如何使用xpath更快定位

    在学习Selenium路上,踩了也不少坑,这是我最近才发现的一个新写法,好吧,"才发现"又说明我做其他事了.对的,我现在还在加班! 开车~~~ 例子:知乎网 标签:Python3. ...

  4. [Selenium]中使用css选择器进行元素定位

    参考:http://www.cnblogs.com/webblog/archive/2009/07/07/1518274.html 常见语法 * 通用元素选择器,匹配任何元素 E 标签选择器,匹配所有 ...

  5. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>

    前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...

  6. CSS常用背景图片定位方法

    CSS背景图片定位其实对于每一位学习前端的同学来说,都已经非常熟悉了.网上铺天盖地的最常见的一种方案就是在父元素中relative,然后子元素absolute.这种方案当然好,不过带来的一个缺点就是会 ...

  7. 定时发布任务,在global.asax中获取文件的物理路径的方法

    如果要把一个相对路径或者虚拟路径映射道服务器的物理路径,通常会使用Server.MapPath()函数,比如将根目录下的html目录映射为物理路径:Server.MapPath("html& ...

  8. linux 中添加自己的库路径的方法 cannot open shared object file: No such file or directory

    本文转自:http://blog.csdn.net/maotianwang/article/details/44619197 库文档在连接(静态库和共享库)和运行(仅限于使用共享库的程式)时被使用,其 ...

  9. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 -- iframe专题 <下>

    学习目的: 掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位. 场景: 1. iframe切换 查看iframe 切换iframe 多个ifr ...

随机推荐

  1. 【以前的空间】bzoj 1052 [HAOI2007]覆盖问题

    这道题的思路挺简单的……就是可以证明如果要覆盖一个区域内的点,那么一定有一个正方形在这“区域内的点所围成的最大矩形的四个角中的一个”(不要吐槽很多的“的”……),对于长度r是否可以覆盖整个区域内的点, ...

  2. 最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )

    Lasso回归模型,是常用线性回归的模型,当模型维度较高时,Lasso算法通过求解稀疏解对模型进行变量选择.Lars算法则提供了一种快速求解该模型的方法.Lars算法的基本原理有许多其他文章可以参考, ...

  3. BZOJ2816:[ZJOI2012]网络——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2816 https://www.luogu.org/problemnew/show/P2173 有一 ...

  4. cf 460 E. Congruence Equation 数学题

    cf 460 E. Congruence Equation 数学题 题意: 给出一个x 计算<=x的满足下列的条件正整数n的个数 \(p是素数,2 ≤ p ≤ 10^{6} + 3, 1 ≤ a ...

  5. struts2远程代码执行漏洞汇总整理

    一.S2-001 1.漏洞原理 在默认配置下,如果用户所提交的表单出现验证错误,后端会对用户的输入进行解析处理,然后返回并显示处理结果. 举个例子,当你提交的登录表单为username=xishir& ...

  6. 【队列】【P2827】【NOIP2016D2T3】蚯蚓

    传送门 Description 本题中,我们将用符号 $\lfloor c \rfloor$ 表示对 $c$ 向下取整,例如:$\lfloor 3.0 \rfloor = \lfloor 3.1 \r ...

  7. poco普通线程

    #include "Poco/Thread.h" #include "Poco/RunnableAdapter.h" #include <iostream ...

  8. MyBatis代码生成工具mybatis-generator在Myeclipse10中的使用

    一.在MyEclipse安装目录下新建myPlugin目录,如下图所示: 二.将 mybatis.zip 里面的文件放在MyEclipse的dropins目录下,如下图所示: 三.在Myeclipse ...

  9. HDU 2655 主席树

    Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. uva 1506 Largest Rectangle in a Histogram

    Largest Rectangle in a Histogram http://acm.hdu.edu.cn/showproblem.php?pid=1506 Time Limit: 2000/100 ...