python-selenum3 第五天定位——不常用定位与css定位详

使用tag来定位
tag定位的是标签,不常用
例如:百度的输入框标签是input
最终会报错,因为百度首页input标签太多了


driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("https://www.baidu.com")

driver.find_element_by_tag_name("input").send_Keys("123")



使用link

link超链接定位,例如百度的hao123 href = "http://www.hao123.com


driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("https://www.baidu.com")
driver.find_element_by_link_text("hao123").click()
driver.back()
driver.find_element_by_partial_link_text("123").click()

说明link_text和partial_link_text的区别,有的时候名字过长,partial_link就是可以进行模糊定位



CSS定位
和xpath一样 css是根据css派生器来定位 基本写法和css写法一致 例如:

最常见的id,class,标签,以百度为例
css 用#号表示 id 属性,如:#kw
css 用.表示 class 属性,如:.s_ipt
css 直接用标签名称,无任何标示符,如:input

driver = webdriver.Firefox(executable_path = "d:\\geckodriver")
driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("1")
driver.find_element_by_css_selector(".s_ipt").send_keys("2")
driver.find_element_by_css_selector("input").send_keys("3")


其他属性直接编写即可
例如:name属性和autocomplete属性

driver.find_element_by_css_selector("[name=‘wd‘]").send_keys("4")
driver.find_element_by_css_selector("[autocomplete=‘off‘]").send_keys("5")


通过标签和元素组合编写
例如:

driver.find_element_by_css_selector("input.#kw").send_keys("6")
driver.find_element_by_css_selector("input.[id=‘kw‘]").send_keys("7")


通过层级定位

#xpath中的 xpath://form[@id=‘form‘]/span/input 和 //form[@class=‘fm‘]/span/input 用css来编写
driver.find_element_by_css_selector("form#form>span>input").send_keys("8")
driver.find_element_by_css_selector("form.fm>span>input").send_keys("9")


索引:定位

同标签多可以通过 option:nth-child(1) 来定位


driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("file:///G:/%E6%A1%8C%E9%9D%A2/20180329/%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5/HTML/day8.html")
driver.find_element_by_css_selector("select#zz>option:nth-child(1)").click()
driver.find_element_by_css_selector("select#zz>option:nth-child(2)").click()
driver.find_element_by_css_selector("select#zz>option:nth-child(3)").click()


逻辑运算定位
可以同时定位多个元素,加强定位,和xpath不一样的,可以不写and

driver = webdriver.Firefox(executable_path = "d:\\geckodriver")
driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("input[name=‘wd‘][autocomplete=‘off‘]").send_keys("1")


非常遗憾 现在的css不存在模糊匹配

原文地址:http://blog.51cto.com/wiktk/2133801

时间: 2024-10-07 16:07:28

python-selenum3 第五天定位——不常用定位与css定位详的相关文章

Xpath定位与Css定位

一. xpath定位:支持属性定位,只要属性唯一就可以定位到,无论是默认属性还是自定义属性 1.属性定位: 代码格式: //*[@name="city"] 如果有多个属性: /*[@name="city" and @size="4"] 其中//*代表全部元素,也可以用//select来过滤div的属性 2.角标定位: //div[@class='driver'][1]/div[1] 二.Css定位: 1.id选择器定位方式: #id 2.clas

CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位

其实前面的标准流和浮动流都很理解,就是定位不太好理解,特别是相对定位和绝对定位,很多刚开始学的同学不好区分.因此这里,小强老师和大家一起分享CSS定位的学习. 通过我们前面的学习,我们网页布局方法: 1. 标准流   (最稳定) 2. 浮动流   (float 其次) 3. 定位流    ( 稳定性最后) 定位是完全脱离标准流的一种布局方式. 其实前面的标准流和浮动流都很理解,就是定位不太好理解,特别是相对定位和绝对定位,很多刚开始学的同学不好区分.因此这里,小强老师和大家一起分享CSS定位的学

运用html常用标签和css定位等学做模仿百度导航页面

导航部分文字链接,鼠标触碰变颜色,除百度logo引用图片外,其它均代码编写.注释部分是一开始用的百度一下截图做的按钮,后来用div填充颜色写了一个按钮.效果图如下. HTML代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>百度一下,你就知道</title> 6 <link href="css/ho

fixed定位与absolute定位

相同点: 1.fixed定位和absolute定位都是绝对定位 2.fixed定位和absolute定位都脱离了标准文档流, 3.未设置偏移量时,都定位在父元素的左上角 tip:元素设置相对定位或绝对后,就具有了偏移属性和堆叠属性Z-index,属性值越大,越靠上 不同点: fixed定位: 设置偏移量后:无论有无已经定位的祖先元素,都相对于浏览器窗口进行偏移 未设置偏移量:以其父元素为基准定位,会继续包含在父包含块中. 表现形式:位置固定,不会随滚动条变化:被他遮盖的元素,可以从其下穿过. a

python第十五天

python第十五天 今日内容 常用模块的介绍: time,datetime os,sys hashlib,json,pickle,collections time:和时间相关 封装了获取时间戳和字符串形式的时间的一些方法. time.time():获取时间戳 time.gmtime([seconds]):获取格式化时间对象:是九个字段组成的 time.localtime([seconds]):获取格式化时间对象:是九个字段组成的 time.mktime(t):时间对象 -> 时间戳 time.

【Selenium 3+Java自动化(6)】-CSS定位语法

一.前言 本章节讲解一下CSS定位. CSS定位相对于XPath定位的优点是:css定位更快,语法更简洁. 这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到.两篇对比学习,更容易理解. 二.CSS:属性定位 1.通过id属性定位,需要加上标识符"#",如:#kw: element = driver.findElement(By.cssSelector("#kw")); element.sendKeys("

selenium入门:css定位

Selenium极力推荐使用css定位,而不是XPath来定位元素,原因是css定位比XPath定位速度快,语法也更加简洁. css常用定位方法 1.find_element_by_css_selector() 2.#id  id 选择器根据id属性来定位元素 3. .class   class选择器,根据class属性值来定位元素 4. [attribute='value'] 根据属性来定位元素 5.element>element 根据元素层级来定位   父元素>子元素 例子: from s

CSS定位:几种类型的position定位的元素

当人们刚接触布局的时候都比较倾向于使用定位的方式.因为定位的概念看起来好像比较容易掌握.表面上你确切地指定了一个块元素所处的位置那么它就会坐落于那里.可是定位比你刚看到的时候要稍微复杂一点.对于定位来说,有一些东西会绊倒新手,所以在它成为你的惯用技巧前你需要掌握它们. 一旦你更深入地了解了它是怎么运作的,你就能够做出一些更棒的事情来. CSS盒模型和定位的类型 为了搞清楚定位首先你得了解CSS盒模型.在上一句中的链接是我写在InstantShift 中的一篇关于盒模型的文章.我在那篇文章做了详细

自动化测试之CSS定位

之前做自动化测试一直用RF框架来操作,发现了明显与unittest的灵活性相差一点. 重新温习了unittest框架,其中这个框架,元素定位是难点,以前更多的使用JQUERY方式定位, 发现其实与CSS定位很相近,有很多共通之处. 今天顺便来复习一下.以前XPATH定位用的也比较多.但图方便之时,很少自己去定位,直接用工具了. 多话不说了,CSS定位总体上有几种, 一,通过元素属性来定们, 例子:driver.find_element_by_css_selector(".class")