selenium自动化定位方法
用selenium操作浏览器进行自动化操作其实就是通过元素属性执行相关操作。所以,我们要知道怎样去查找元素,定位元素。
常见的定位属性有:
#查找元素的id
find_elements_by_id(id)
find_elements_by_id(id) #查找元素的name
find_element_by_name(name)
find_elements_by_name(name) #查找元素的链接文本
find_element_by_link_text(link_text)
find_elements_by_link_text(link_text) #查找元素的链接的部分文本
find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text) #查找元素的标签名
find_element_by_tag_name(name)
find_elements_by_tag_name(name) #查找元素的xpath
find_element_by_xpath(xpath) #查找元素内的子元素的xpath
find_elements_by_xpath(xpath) #查找一个元素的类名
find_element_by_class_name(name) #查找元素的类名
find_elements_by_class_name(name) #查找并返回一个元素的CSS 选择器
find_element_by_css_selector(css_selector) #查找并返回多个元素的CSS 选择器列表
find_elements_by_css_selector(css_selector)
webdriver中常用的操作方法有:
.click() 进行点击操作,用于点击一个按钮。
.send_keys() 在对象上模拟按键输入,用于在一个输入框里输入内容。
.clear() 清除对象的内容。
.text 获取该元素的文本。
.submit() 提交表单。
.get_attrbute 获得属性值。
以百度首页为例:
#coding:utf-8
from selenium import webdriverimport time
brower = webdriver.Firefox()
brower.get("http://www.baidu.com") #根据元素的类名进行定位
brower.find_element_by_class_name('s_ipt').send_keys('') #根据元素的id进行定位
brower.find_element_by_id('kw').send_keys('12306') #根据元素的name进行定位
brower.find_element_by_name('wd').send_keys('selenium') #根据元素的xpath进行定位
brower.find_element_by_xpath("//input[@id = 'kw']").send_keys('selenium') #根据元素的链接文本进行定位
brower.find_element_by_link_text(u'糯米').click() #根据元素的CSS选择器进行定位
#----------------第一种id进行定位------------------
brower.find_element_by_css_selector('#kw').send_keys(u'定位')
brower.find_element_by_css_selector('#su').click() #----------------第二种属性元素定位------------------
brower.find_element_by_css_selector('input[id = "kw"]').send_keys(u'自动化')
brower.find_element_by_css_selector('input[id = "su"]').click() #----------------第三种标签进行定位------------------
brower.find_element_by_css_selector('input.s_ipt').send_keys(u'百度')
brower.find_element_by_css_selector('input.bg').click() #----------------第四种class属性组合定位------------------
brower.find_element_by_css_selector('span.bg>input.s_ipt').send_keys(u'测试')
brower.find_element_by_css_selector('span.bg>input.bg').click() #----------------第五种id属性组合定位------------------
brower.find_element_by_css_selector('span>input#kw').send_keys(u'地铁')
brower.find_element_by_css_selector('span>input#su').click() #----------------第六种class属性定位------------------
brower.find_element_by_css_selector('.s_ipt').send_keys(u'高铁')
#或者
brower.find_element_by_css_selector('.s_btn').click()
brower.find_element_by_css_selector('.bg.s_btn').click() #----------------第七种class与id组合定位------------------
brower.find_element_by_css_selector('.bg.s_ipt_wr.quickdelete-wrap>#kw').send_keys('selenium')
brower.find_element_by_css_selector('#su').click() time.sleep(3)
brower.quit()
注:用css定位时只有元素"id"可以用#,元素"class"用"."
selenium自动化定位方法的更多相关文章
- Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法
Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法 之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...
- Python+Selenium自动化-定位页面元素的八种方法
Python+Selenium自动化-定位页面元素的八种方法 本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...
- Web自动化定位方法以及常用便捷操作
很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...
- selenium各种定位方法(转)
selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...
- selenium 之定位方法
1 id 定位 driver.find_element_by_id() HTML 规定id 属性在HTML 文档中必须是唯一的.这类似于公民的身份证号,具有很强的唯一性 from selenium i ...
- python selenium八大定位方法
一.定位方法 注意:元素属性必须唯一存在 #id定位 find_element_by_id() #name定位 find_element_by_name() #class_name定位 find_el ...
- python之selenium元素定位方法
前提: 大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助! 内容: 一,selenium定位元素 selenium提供了8种方法: 1.id ...
- selenium的定位方法-多元素定位
在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页 ...
- selenium的定位方法-单元素定位
selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID.NAME.CLASS_NAME.TAG_NAME.CSS_SELECTOR.XPATH.LINK ...
随机推荐
- jQuery将时间转化为时间戳或将时间戳转化为时间
下面的这段代码,是可以将时间戳转为时间,或者将时间戳转为时间: <script type="text/javascript"> $.extend({ myTime:{ ...
- Oracle备份恢复之Oracle11G R2用exp无法导出空表解决方法
在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再roll ...
- Django实现电影论坛
主要实现功能: 注册,登陆,发帖,评论帖子,xadmin实现后台提供帖子管理,板块管理等等 首页(搜索,筛选) 发布帖子 帖子详情页(显示帖子具体内容,提供评论) 个人信息页面(显示个人信息,修改个人 ...
- 如果要写php扩展啥的, 要看什么?
1.写PHP扩展并不难 有一定C语言基础即可.切记一定要在Linux平台下开发,不要用Windows 这里有一篇博文,可以看下http://rango.swoole.com/archives/152 ...
- 蔡勒(Zeller)公式--黑色星期五
求某年某月某日是周几; 蔡勒(Zeller)公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 ;y是年的后两位:c是世纪数-1(年的前两位):m是月份,大于等于3,小于等 ...
- 在本机搭建vue-cli3项目
vue-cli3官方网址: https://cli.vuejs.org/zh/ 由于公司开始一个新项目,用到的是vue-cli3搭建的项目,所以自己想搭建一个项目,今天搭建的项目就是一个很简单的项目, ...
- Frame报文
链路层帧常用的帧格式有两种:Ethernet II 与 IEEE802.3 Ethernet II 格式多用于终端设备的通信 IEEE802.3 格式多用于网络设备的通信 如何区分这两种报文 ...
- 【Pyton】【小甲鱼】异常处理:你不可能总是对的
Exception 1.assertionerror举例 >>> my_list=['小甲鱼是帅哥'] >>> assert len(my_list)>0 & ...
- mysql 连接查询 join
本文用到的表 CREATE TABLE `cls` ( `cls_id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMARY KEY (`cls ...
- listview点击控件显示EditText,键盘弹出消失的解决方法:
1.软键盘弹出后消失解决方法 AndoridManifet 在activity中添加: android:windowSoftInputMode="adjustPan" 2.使用方式 ...