python中通过selenium简单操作及元素定位知识点总结

 更新时间:2019年09月10日 17:12:42   作者:幸运球与倒霉蛋  
在本篇文章里小编给大家整理的是关于python中通过selenium简单操作及元素定位的知识点,有需要的朋友们可以学习下。

 

浏览器的简单操作

# 导入webdriver模块

# 创建driver对象,指定Chrome浏览器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 访问百度
driver.get("http://baidu.com")
driver.get("http://sina.com")
# 后退
driver.back()
# 前进
driver.forward()
# 刷新
driver.refresh()

# 关闭窗口
driver.close()
# 关闭会话,关闭浏览器,关闭chromedriver
driver.quit()

selenium的8种定位方式

6种靠单一的特征来找元素(id, calss_name, tag_name, name, link_text(2))

组合各种特征和关系来找元素(xpath, css)

1.id定位:唯一

find_element_by_id()

2.name定位:不唯一

find_element_by_name()

find_elements_by_name()

3.class定位:不唯一

find_element_by_class()

4.tag_name定位:不唯一

find_element_by_tag_name()  # 单数,在DOM页面中,匹配到的第一个元素

find_elements_by_tag_name()  # 复数,返回的是一个列表,元素为webElement对象,全部匹配的元素

5.文本匹配:/完全匹配/部分匹配

find_element_by_link_text()

find_element_by_partial_link_text()

Xpath定位:

1.通过自己来定位:

语法://标签名[@属性名=值]

例如:

//*[@id="mCon"]/span  # *匹配所有元素

//*[@id="kw"]

2.通过文本来定位:

语法://标签名[text()="值"]

例如:

//h1[(text()= "第20期")]  # 完全匹配

//h1[contains(text(), "第20期")]  # 部分匹配,包含

3.层级定位:

如果找到的元素有两个或多个完全一样的元素,那么就通过他们不同的父级或父级的父级来定位

/ 绝对定位,单斜杠只能写子级,不能跳级写

// 相对定位,双斜杠可以写子级,子级的子级等等(推荐使用)

举例说明:

l 输入账号

//div//input[@name="account"]

//div[@class="padding-cont pt-login"]//input[@placeholder="邮箱/账号/手机号"]

l 输入密码

//div[@class="padding-cont pt-login"]//input[@name="pass"]

//div[@class="padding-cont pt-login"]//input[@type="password"]

l 下次自动登录

//div[@class="padding-cont pt-login"]//a[text()="下次自动登录"]

//div[@class="padding-cont pt-login"]//a[@class="auto-login fl"]

l 忘记密码

//div[@class="padding-cont pt-login"]//a[@class="forget fr"]

//div[@class="padding-cont pt-login"]//a[text()="忘记密码?"]

l 登录按钮

//div[@class="padding-cont pt-login"]//a[@class="btn-btn"]

//div[@class="padding-cont pt-login"]//a[text()="登录"]

Xpath轴定位:

含义:通过同级目录来定位元素,叫做轴定位

轴运算:

ancestor:祖先节点,包括父节点

parent:父节点

preceding-sibling:当前元素节点标签之前的所有兄弟节点

following-sibling:当前元素节点标签之后的所有兄弟节点

preceding:当前元素节点标签之前的所有节点(HTML页面先后顺序)

following:当前元素节点标签之后所有的节点(HTML页面先后顺序)

轴定位语法:

/轴名称::标签名称[@属性名=值]

示例:例://div//table//td//preceding::td

应用场景:

页面显示为一个表格样式的数据列,需要通过组合来定位元素

以上就是本次介绍的全部知识点内容,感谢大家对脚本之家的支持。

相关文章

  • Python3.6 Schedule模块定时任务(实例讲解)

    Python3.6 Schedule模块定时任务(实例讲解)

    下面小编就为大家带来一篇Python3.6 Schedule模块定时任务(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • python 分割符竖线的具体实现

    python 分割符竖线的具体实现

    竖线作为一种常见的分割符,能够将一行文本或数据按照指定规则分割为多个部分,本文主要介绍了python 分割符竖线的具体实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Django与DRF结合的全局异常处理方案详解

    Django与DRF结合的全局异常处理方案详解

    这篇文章主要为大家详细介绍了Django与DRF结合的全局异常处理方案,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Pytorch 如何训练网络时调整学习率

    Pytorch 如何训练网络时调整学习率

    这篇文章主要介绍了Pytorch 如何训练网络时调整学习率的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • matplotlib作图添加表格实例代码

    matplotlib作图添加表格实例代码

    这篇文章主要介绍了matplotlib作图添加表格实例代码,实例绘制了一个简单的折线图,并且在图中添加了一个表格,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 基于python的前后端分离的模拟实现

    基于python的前后端分离的模拟实现

    前后端分离核心是UI界面展示层(View)和数据处理层(Model)通过控制层(Controller)进行解耦合,在MVC设计模式中,前端主要负责数据展示和用户交互(View),后端处理业务逻辑和数据存储(Model),通过API接口进行通信,提高了开发效率,便于前后端分工合作,有利于代码的维护和迭代
    2024-10-10
  • Python如何基于rsa模块实现非对称加密与解密

    Python如何基于rsa模块实现非对称加密与解密

    这篇文章主要介绍了Python如何基于rsa模块实现非对称加密与解密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python 元组和列表的区别

    python 元组和列表的区别

    这篇文章主要介绍了python 元组和列表的区别,帮助大家更好的理解和学习python 数据类型的相关知识,感兴趣的朋友可以了解下
    2020-11-11
  • 详解PyQt5 GUI 接收UDP数据并动态绘图的过程(多线程间信号传递)

    详解PyQt5 GUI 接收UDP数据并动态绘图的过程(多线程间信号传递)

    这篇文章主要介绍了PyQt5 GUI 接收UDP数据并动态绘图(多线程间信号传递),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python Google风格注释的使用

    Python Google风格注释的使用

    Google风格注释是一种Python代码注释的标准化格式,它提供了一种规范的注释格式,使得代码更加易读、易于维护,本文就来介绍一下Google风格注释的语法和用法,感兴趣的可以了解一下
    2023-11-11

最新评论