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

时间: 2024-08-06 22:43:07

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

页面中插入CSS样式的三种方法

页面中插入css样式的三种方法总结 1. 外部样式 当样式需要应用于很多页面时,外部样式表将是理想的选择.在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观.每个页面使用<link>标签链接到样式表. <link>标签在(文档的)头部: <head> <link rel="stylesheet" type="text/css" href="path/myCss.css"/> <

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

[第一部分]开篇:先认识Xpath的4种定位方法 跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我学起来! 第1种方法:通过绝对路径做定位(相信大家不会使用这种方式) By.xpath("html/body/div/form/input") By.xpath("//input") 第2种方法:通过元素索引定位 By.

CSS常用背景图片定位方法

CSS背景图片定位其实对于每一位学习前端的同学来说,都已经非常熟悉了.网上铺天盖地的最常见的一种方案就是在父元素中relative,然后子元素absolute.这种方案当然好,不过带来的一个缺点就是会改变元素的层级关系,如果在多个地方使用,这样的层叠嵌套的关系会十分混乱. 先暂时抛弃那种方案,给大家分享几种CSS背景图片定位的方案. 整篇文章会按照如下思路: 1.无依赖的absolute定位 2.background-position扩展语法 3.background-origin定位 4.ca

在selenium中使用css选择器进行元素定位

Sizzle Css3还提供一些直接选取form表单元素的伪类 :input: Finds all input elements (includes textareas, selects, and buttons). :text, :checkbox, :file, :password, :submit, :image, :reset, :button: Finds the input element with the specified input type (:button also fin

java web中request获取的各种路径明义

举个例子:现在我们要访问一个资源文件,需要在浏览器输入地址:http://daily.zhihu.com/rpt/test.jsp?id=1 http://daily.zhihu.com/rpt 就是这个项目的根路径(完整路径去掉资源文件部分) request.getContestPath 获取到的是  /rpt getServeletPath获取到的是项目中资源的相对路径  /test.jsp getRequestURI获取到网站路径去掉ip和端口部分的字符串:/rpt/test.jsp ge

python + selenium webdriver 复合型css样式的元素定位方法

<div class="header layout clearfix"></div> 当元素没有id,没有name,没有任何,只有一个class的时候,应该如何去定位这个元素 1.页面存在多个div,使用find_elements_by_tag_name("div")[x] 这种方法可以使用,但是要去数第几个div,太坑 2.使用find_element_by_class_name("header layout clearfix&q

JQuery中的find、filter和each方法学习

find() 概述 搜索所有与指定表达式匹配的元素.这个函数是找出正在处理的元素的后代元素的好方法. 所有搜索都依靠jQuery表达式来完成.这个表达式可以使用CSS1-3的选择器语法来写. 参数 exprStringV1.0 用于查找的表达式 jQuery object objectV1.6 一个用于匹配元素的jQuery对象 elementDOMElementV1.6 一个DOM元素 示例 描述: 从所有的段落开始,进一步搜索下面的span元素.与$("p span")相同. HT

xpath定位方法详解

1.xpath较复杂的定位方法: 现在要引用id为“J_password”的input元素,可以像下面这样写: WebElement password = driver.findElement(By.xpath("//*[@id='J_login_form']/dl/dt/input[@id='J_password']")); 其中//*[@id=’ J_login_form’]这一段是指在根元素下查找任意id为J_login_form的元素,此时相当于引用到了form元素.后面的路径

Vue 2.x 在 Weex 和 Web 中的差异

平台差异 Vue.js 最初是为 Web 平台设计的,虽然可以基于 Weex 开发原生应用,但是 Web 开发和原生开发毕竟不同,在功能和开发体验上都有一些差异,这些差异从本质上讲是原生开发平台和 Web 平台之间的差异,可以通过<Weex 和 Web 平台的差异>了解更多细节和原因. 由于运行平台存在差异,Weex 不支持 Vue 中与 DOM 相关的功能: 不支持事件冒泡和捕获机制,.prevent ..capture ..stop ..self 等事件修饰符在原生环境中无意义. 键盘事件