详解Python自动化中这八大元素定位

 更新时间:2021年06月16日 15:37:53   作者:巭孬嫑惹佳乐~  
今天给大家带来的是关于Python的相关知识,文章围绕着Python自动化中这八大元素定位展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

一、find_element_by_id()

find_element_by_id()

1.从上面定位到的元素属性中,可以看到有个id属性:id=“kw”,这里可以通过它的id属性定位到这个元素。

2.定位到搜索框后,用send_keys()方法,就可以输入文本。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 通过id定位百度输入框,并输入'python'
ss = driver.find_element_by_id('kw')
ss.send_keys('python')

在这里插入图片描述

二、find_element_by_name()

find_element_by_name()

1.从上面定位到的元素属性中,可以看到有个name属性:name=“wd”,这里可以通过它的name属性单位到这个元素。
说明:这里运行后会报错,说明这个搜索框的name属性不是唯一的,无法通过name属性直接定位到输入框

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 通过name定位百度输入框,并输入'python'
ss = driver.find_element_by_name('wd')
ss.send_keys('python')

在这里插入图片描述

三、find_element_by_class_name()

find_element_by_class_name()

1.从上面定位到的元素属性中,可以看到有个class属性:class=“s_ipt”,这里可以通过它的class属性定位到这个元素。

from selenium import  webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
#通过class定位百度输入框,并输入'python'
driver.find_element_by_class_name('s_ipt').send_keys('python')

在这里插入图片描述

四、find_element_by_tag_name()

find_element_by_tag_name()

1.从上面定位到的元素属性中,可以看到每个元素都有tag(标签)属性,如搜索框的标签属性,就是最前面的input。

2.很明显,在一个页面中,相同的标签有很多,所以一般不用标签来定位。以下例子,仅供参考和理解,运行肯定报错。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
#通过tag(标签)定位百度输入框,并输入'python'
ss = driver.find_element_by_tag_name('input')
ss.send_keys('python')

在这里插入图片描述

五、find_element_by_link_text()

1.定位百度页面上"hao123"这个按钮

在这里插入图片描述

查看页面元素:

<a class="mnav" target="_blank" href="http://www.hao123.com" rel="external nofollow" >hao123</a>

2.从元素属性可以分析出,有个href = "http://www.hao123.com

说明它是个超链接,对于这种元素,可以用以下方法:

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过tlink(超链接)定位百度输入框,并点击
driver.find_element_by_link_name('hao123').click()

六、find_element_by_partial_link_text()

1.有时候一个超链接它的字符串可能比较长,如果输入全称的话,会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串就可以了

2.如“hao123”,只需输入“ao123”也可以定位到

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过partial_link定位百度输入框,并点击(partial_link是一种模糊匹配的方式)
driver.find_element_by_partial_link_name('hao123').click()

七、find_element_by_xpath()

1.以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决。
2.xpath是一种路径语言,跟上面的定位原理不太一样,首先第一步要先学会查看一个元素的xpath。

  • 对于谷歌浏览器来说,有自己 的xpath解析工具:鼠标移到需要查看的html源码上,右击
  • 选择copy
  • copy xpath,就是源码的xpath路径

在这里插入图片描述

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过xpath地址定位百度输入框,并点击(xpath地址即为赋值过来的地址)
driver.find_element_by_xpath('//*[@id="s-top-left"]/a[2]').click()

八、find_element_by_css_selector()

1.css是另外一种语法,比xpath更为简洁,但是不太好理解。这里先学会如何用工具查看,后续的教程再深入讲解

  • 对于谷歌浏览器来说,同样有自己 的css解析工具:鼠标移到需要查看的html源码上,右击
  • 选择copy
  • copy selector,就是源码的css路径

在这里插入图片描述

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过css地址定位百度输入框,并点击
driver.find_element_by_xpath('#s-top-left > a:nth-child(2)').click()

总结:

在这里插入图片描述

到此这篇关于详解Python自动化中这八大元素定位的文章就介绍到这了,更多相关Python元素定位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Opencv图像处理基本操作代码详解

    Python Opencv图像处理基本操作代码详解

    这篇文章主要介绍了Python Opencv图像处理基本操作代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 超详细PyTorch实现手写数字识别器的示例代码

    超详细PyTorch实现手写数字识别器的示例代码

    这篇文章主要介绍了超详细PyTorch实现手写数字识别器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python反射用法实例简析

    Python反射用法实例简析

    这篇文章主要介绍了Python反射用法,结合实例形式简单分析了Python反射的概念、原理及使用方法,需要的朋友可以参考下
    2017-12-12
  • 三分钟熟练使用Python的os.path.join()

    三分钟熟练使用Python的os.path.join()

    在Python中os.path.join()函数用于将多个路径组合成一个路径,下面这篇文章主要给大家介绍了关于熟练使用Python的os.path.join()的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • python机器学习朴素贝叶斯算法及模型的选择和调优详解

    python机器学习朴素贝叶斯算法及模型的选择和调优详解

    这篇文章主要为大家介绍了python机器学习朴素贝叶斯及模型的选择和调优示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 超详细注释之OpenCV实现视频实时人脸模糊和人脸马赛克

    超详细注释之OpenCV实现视频实时人脸模糊和人脸马赛克

    这篇文章主要介绍了OpenCV实现视频实时人脸模糊和人脸马赛克,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 基于Django与ajax之间的json传输方法

    基于Django与ajax之间的json传输方法

    今天小编就为大家分享一篇基于Django与ajax之间的json传输方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python鼠标事件及坐标获取窗口和屏幕坐标

    Python鼠标事件及坐标获取窗口和屏幕坐标

    这篇文章主要介绍了Python编程中如何通过鼠标事件及坐标获取窗口坐标和屏幕坐标的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • python实现简单聊天应用 python群聊和点对点均实现

    python实现简单聊天应用 python群聊和点对点均实现

    这篇文章主要为大家详细介绍了python实现简单聊天应用,python群聊和点对点均实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Python神奇的内置函数locals的实例讲解

    Python神奇的内置函数locals的实例讲解

    今天小编就为大家分享一篇关于Python神奇的内置函数locals的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02

最新评论