用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自动化定位方法的更多相关文章

  1. Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法

    Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法   之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...

  2. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

  3. Web自动化定位方法以及常用便捷操作

    很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...

  4. selenium各种定位方法(转)

    selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...

  5. selenium 之定位方法

    1 id 定位 driver.find_element_by_id() HTML 规定id 属性在HTML 文档中必须是唯一的.这类似于公民的身份证号,具有很强的唯一性 from selenium i ...

  6. python selenium八大定位方法

    一.定位方法 注意:元素属性必须唯一存在 #id定位 find_element_by_id() #name定位 find_element_by_name() #class_name定位 find_el ...

  7. python之selenium元素定位方法

    前提: 大家好,今天我们来学习一下selenium,今天主要讲解selenium定位元素的方法,希望对大家有所帮助! 内容: 一,selenium定位元素 selenium提供了8种方法: 1.id ...

  8. selenium的定位方法-多元素定位

    在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页 ...

  9. selenium的定位方法-单元素定位

    selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID.NAME.CLASS_NAME.TAG_NAME.CSS_SELECTOR.XPATH.LINK ...

随机推荐

  1. [转][darkbaby]任天堂传——失落的泰坦王朝(中)

    TV游戏产业历史上曾有过太多表里不一的外交辞令,然而当年SQUARE和任天堂分道扬镳的真正原因确实如坂口博信在1996年2月29日的PS版 <FFVII>发表会上宣称的那样:“虽然之前有过 ...

  2. Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, &, disown)

    Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup,  setsid,  &, disown) 1.nohup 命令 我们知道,当用户注销(logout)或者网络断开 ...

  3. ZOJ 3983 - Crusaders Quest - [DFS]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3983 题意: 给出一个长度为 $9$ 的字符串 $s$,且 $s ...

  4. oracle(十)临时表

    1.临时表的特点 (1)多用户操作的独立性:对于使用同一张临时表的不同用户,oracle都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时 发生交叉,从而保证了多 ...

  5. 【spring mvc】springmvc在tomcat中的执行过程

    一.WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象(每个web应用程序唯一),它代表当前web应用web容器提供其一个全局的上下文环境,其为后面的spri ...

  6. redhat7下对用户账户的管理

    redhat7对用户帐号的管理主要集中在新建,删除和修改三个动作. 1.新建用户 通过useradd --help,我们得到useradd的详细参数. -d 目录 指定用户主目录,如果此目录不存在,则 ...

  7. 001-window版redis安装

    一.参考地址 官方地址:https://redis.io/ windows版本[学习使用]:https://github.com/MicrosoftArchive/redis 二.windows版re ...

  8. Unity无法创建新工程

    1.解决方法 重新登录一遍账号

  9. [django]django的orm查询

    实体 实体 出版社 category 作者 tag 书 文章 先学习一下基础的增删查改 django orm增删改查: https://www.cnblogs.com/iiiiiher/article ...

  10. [kx]宇宙-银河

    行星/恒星/卫星的区分 目前太阳系内有8颗行星,分别是:水星.金星.地球.火星.木星.土星.天王星.海王星. 参考 恒星是自发光,而行星(行星通常指自身不发光,其公转方向常与所绕恒星的自转方向相同.) ...