浅谈Selenium+Webdriver 常用的元素定位方式

 更新时间:2021年01月13日 10:15:36   作者:戈壁楼兰  
这篇文章主要介绍了浅谈Selenium+Webdriver 常用的元素定位方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

假设页面源代码如下:

<input type="text"name="wd" id="kw1" class="input_wd" maxlength="100"style="width:474px;"autocomplete="off">

通过id定位元素:find_element_by_id(“id_vaule”):

browser=webdriver.Firefox()
browser.find_element_by_id("kw1")

通过name定位元素:find_element_by_name(“name_vaule”)

browser.find_element_by_name("wd")

通过tag_name定位元素:find_element_by_tag_name(“tag_name_vaule”)

browser.find_element_by_tag_name("input")#tag_name指标签名称

通过class_name定位元素:find_element_by_class_name(“class_name”)

browser.find_element_by_class_name("input_wd")

通过css定位元素:find_element_by_css_selector();用css定位是比较灵活的

browser.find_element_by_css_selector("input[id=\"kw1\"]")
browser.find_element_by_css_selector("input.input_wd)
browser.find_element_by_css_selector("#kw1)

通过xpath定位元素:find_element_by_xpath(“xpath”)
XPath(XML Path Language)是一种在XML文档中定位元素的语言,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。
假设页面源代码如下:

页面源代码 

注:元素的xpath绝对路径可通过firebug直接查询,绝对路径以单/开头,从文档的根节点开始解析(如:/html/body/table/tbody/tr[2]/td[2]/div/div[1]/div/div[2]/div[4]/div[3]/div[1]/a[1]),相对路径则以//开头,从文档的任意节点开始解析。

firebug查看xpath

相对路径的引用写法:

表达式 描述
//input 选取所有input元素
//form[1]/input 选取第一个form元素内的所有直接子input元素
//form[1]//input 选取第一个form元素内的所有子input元素,不论嵌套了多少层
//form[1]/input[last()] 选取第一个form元素内的所有直接子input元素中的最后一个
//form[@id='loginForm'] 选取id属性值为loginForm的form元素
//input[@name='continue'][@type='button'] 选取name属性值为continue且type属性值为button的input元素
//form[@id^='loginForm']/input[4] 选取id以loginForm开头的form元素下第4个input元素
browser.find_element_by_xpath(“//td[contains(text(),'下单编号')]”) 选取text文本为下单编号的td

通过link定位:find_element_by_link_text(“text_vaule”)或者find_element_by_partial_link_text()
适用于页面中出现的文字链接

browser.find_element_by_link_text("登录").click() #点击登录链接
browser.find_element_by_partial_link_text("登").click()#只用了链接中的部分文字

参考资料:

[1]XPath教程
[2]Selenium Webdriver元素定位的八种常用方式

到此这篇关于浅谈Selenium+Webdriver 常用的元素定位方式的文章就介绍到这了,更多相关Selenium Webdriver元素定位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python flask框架post接口调用示例

    Python flask框架post接口调用示例

    这篇文章主要介绍了Python flask框架post接口调用,结合实例形式分析了基于flask框架的post、get请求响应及接口调用相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • PHP webshell检查工具 python实现代码

    PHP webshell检查工具 python实现代码

    Web安全应急响应中,不免要检查下服务器上是否被上传了webshell,手工检查比较慢,就写了个脚本来检查了。Windows平台下已经有了lake2写的雷克图的了,一般的检查也够用了,写了个Linux下面的,用python写的。
    2009-09-09
  • 在python3.64中安装pyinstaller库的方法步骤

    在python3.64中安装pyinstaller库的方法步骤

    这篇文章主要介绍了在python3.64中安装pyinstaller库的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python中的异常处理简明介绍

    Python中的异常处理简明介绍

    这篇文章主要介绍了Python中的异常处理简明介绍,本文讲解了try-except检测异常、上下文管理器(with…as…语句)、raise引发异常、断言等内容,需要的朋友可以参考下
    2015-04-04
  • Python迭代器与生成器基本用法分析

    Python迭代器与生成器基本用法分析

    这篇文章主要介绍了Python迭代器与生成器基本用法,结合实例形式分析了Python迭代器与生成器的基本功能、定义及使用方法,需要的朋友可以参考下
    2018-07-07
  • 详解Python在七牛云平台的应用(一)

    详解Python在七牛云平台的应用(一)

    这篇文章主要介绍了详解Python在七牛云平台的应用(一),涉及Python通过官方库对空间的操作,上传的步骤,操作方法等相关内容,以及完整的操作代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python多线程及其基本使用方法实例分析

    Python多线程及其基本使用方法实例分析

    这篇文章主要介绍了Python多线程及其基本使用方法,结合实例形式分析了Python相关概念、原理、使用方法及操作注意事项,需要的朋友可以参考下
    2019-10-10
  • python实现csv格式文件转为asc格式文件的方法

    python实现csv格式文件转为asc格式文件的方法

    下面小编就为大家分享一篇python实现csv格式文件转为asc格式文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • python Spyder界面无法打开的解决方法

    python Spyder界面无法打开的解决方法

    下面小编就为大家分享一篇python Spyder界面无法打开的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python学习笔记之解析json的方法分析

    Python学习笔记之解析json的方法分析

    这篇文章主要介绍了Python解析json的方法,结合实例形式分析了常见的Python解析与转换json格式数据相关操作技巧,需要的朋友可以参考下
    2017-04-04

最新评论