web中的CSS、Xpath等路径定位方法学习
今天不到八点就到公司了,来的比较早,趁着有点时间,总结下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等路径定位方法学习的更多相关文章
- maven的setting.xml文件中只配置本地仓库路径的方法
maven的setting.xml文件中只配置本地仓库路径的方法 即:settings标签下只有一个 localRepository标签,其他全部注释掉即可 <?xml version=&quo ...
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)
跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...
- Selenium中如何使用xpath更快定位
在学习Selenium路上,踩了也不少坑,这是我最近才发现的一个新写法,好吧,"才发现"又说明我做其他事了.对的,我现在还在加班! 开车~~~ 例子:知乎网 标签:Python3. ...
- [Selenium]中使用css选择器进行元素定位
参考:http://www.cnblogs.com/webblog/archive/2009/07/07/1518274.html 常见语法 * 通用元素选择器,匹配任何元素 E 标签选择器,匹配所有 ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...
- CSS常用背景图片定位方法
CSS背景图片定位其实对于每一位学习前端的同学来说,都已经非常熟悉了.网上铺天盖地的最常见的一种方案就是在父元素中relative,然后子元素absolute.这种方案当然好,不过带来的一个缺点就是会 ...
- 定时发布任务,在global.asax中获取文件的物理路径的方法
如果要把一个相对路径或者虚拟路径映射道服务器的物理路径,通常会使用Server.MapPath()函数,比如将根目录下的html目录映射为物理路径:Server.MapPath("html& ...
- linux 中添加自己的库路径的方法 cannot open shared object file: No such file or directory
本文转自:http://blog.csdn.net/maotianwang/article/details/44619197 库文档在连接(静态库和共享库)和运行(仅限于使用共享库的程式)时被使用,其 ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 -- iframe专题 <下>
学习目的: 掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位. 场景: 1. iframe切换 查看iframe 切换iframe 多个ifr ...
随机推荐
- [洛谷P1714]切蛋糕
题目大意:给你n个整数,求出其中长度不超过m的最大字段和. 题解:单调队列维护前缀和最小值,然后用当前值减去当前有效最小值即可 C++ Code: #include<cstdio> usi ...
- BZOJ1257:[CQOI2007]余数之和——题解+证明
http://www.lydsy.com/JudgeOnline/problem.php?id=1257 Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod ...
- [bzoj] 3669 NOI2014 魔法森林 || LCT
原题 copy一篇题解:原链接 将边按照a排序,然后从小到大枚举,加入图中. 在图中用lct维护一棵两点之间b最大值尽量小的生成树. 当加入一条边(u, v)时: 如果(u, v)不连通,则直接加入这 ...
- HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)
HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...
- python邮件服务
文件形式的邮件 [python] view plaincopy #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime ...
- 如何用好 github 中的 watch、star、fork
http://www.jianshu.com/p/6c366b53ea41 https://www.zhihu.com/question/20431718 在每个 github 项目的右上角,都有三个 ...
- swift的UIbutton
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, ...
- [sed]记录
sed的括号本身没有特殊意义,如果要保留通配内容,需要转义. echo "1) host" |sed 's/1) ([a-z])/$1) $1/' 有两处有问题. 1. 首先是上 ...
- dns随笔(部分转载)
1.allow-notify allow-notify 定义了一个匹配列表并且只应用于从dns区域(slave zone),比如,这个列表是一个ip列表,它 2. 触发同步的过程 http://www ...
- DOM动态操纵控件案例
点击登陆显示登陆框 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head ...