Python脚本Selenium及页面Web元素定位详解

 更新时间:2021年10月21日 14:47:38   作者:胡桃_  
这篇文章主要为大家介绍了Python脚本中如何使用Selenium定位页面Web元素的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助

Selenium特点

开源,免费

多浏览器支持:firefox、chrome、IE

多平台支持:linux 、windows、MAC

多语言支持:java、python、ruby、php、C#、

对web页面有良好的支持

简单(API 简单)、灵活(用开发语言驱动)

支持分布式测试用例执行一、

八种定位方式

1、driver.find_element_by_xpath(value)

可以使用自带的copy xpath 进行定位
不推荐使用这种方法进行元素定位,后续开发修改代码路径发生变化就需要重新进行定位

// 使用xpath进行定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()
//通过xpath定位获取元素位置
driver.find_element_by_xpath('//*[@id="2"]/h3/a').click()
 

利用元素属性进行xpath定位

// 利用元素属性进行xpath定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()
//通过元素属性进行xpath定位  元素的值需要是唯一的
driver.find_element_by_xpath('//a[@href="https://www.baidu.com/link?url=whqbCegRZQsSTccYyuTdx3JumdN0qSFUFOo_xM_ESykWekftGjVFXAq55MMqjvQL0NG7iI1l6irIW_vdPN7h-K&wd=&eqid=d07979d2000631b10000000661443a3f" rel="external nofollow" ]').click()
 

2、driver.find_element_by_css_selector(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//标签名及属性(含属性值)组合定位,方式有很多不一一举例
driver.find_element_by_css_selector('input[name="wd"]').send_keys("Selenium八大元素定位")
 

3、driver.find_element_by_id(value)

// 搜索百度使用f12定位到按钮的位置
<input type="submit" id="su" value="百度一下" class="bg s_btn">
// 使用id 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到按钮的位置并进行点击,click() 点击操作
driver.find_element_by_id("su").click()

4、driver.find_element_by_name(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//通过id定位到输入框的位置,send_keys('') 往输入框填写内容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
 

5、driver.find_element_by_class_name(value)

// 搜索百度使用f12定位到输入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到输入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
driver.find_element_by_class_name("s_ipt").send_keys("Selenium八大元素定位")
 

6、driver.find_element_by_tag_name(value)

// 使用标签名进行定位
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
driver.find_element_by_tag_name("input")//通过标签名去定位,不推荐重复率很高
 

7、driver.find_element_by_link_text(value)

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
 
//此定位方式主要是对超链接进行定位,填写的内容是完整的超链接文字
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//此定位方式主要是对超链接进行定位,也就是html中的<a>标签,括号中填写的值是完整的超链接文字
driver.find_element_by_link_text("新闻").click()
 

8、driver.find_element_by_partial_link_text(value)

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
 
//此定位方式主要是对超链接进行定位,填写的内容是部分的超链接文字
from selenium import webdriver
driver = webdriver.Chrome() //打开谷歌
driver.get("http://www.baidu.com") //打开百度链接
//此定位方式主要是对超链接进行定位,也就是html中的<a>标签,括号中填写的值是部分的超链接文字
driver.find_element_by_partial_link_text("新").click()
 

以上就是Python脚本Selenium及页面Web元素定位详解的详细内容,更多关于脚本Selenium页面Web元素定位的资料请关注脚本之家其它相关文章!

相关文章

  • 基于Python利用Faker批量测试数据

    基于Python利用Faker批量测试数据

    这篇文章主要介绍了基于Python利用Faker批量测试数据。测试过程中,经常需要批量去造数据,方法有很多,最简单方便的应该是使用python 的一个三方库Faker。下面我们就来看看三方库Faker如何批量测试数据,需要的朋友可以参考一下
    2022-03-03
  • 基于pandas将类别属性转化为数值属性的方法

    基于pandas将类别属性转化为数值属性的方法

    今天小编就为大家分享一篇基于pandas将类别属性转化为数值属性的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python转json时出现中文乱码的问题及解决

    Python转json时出现中文乱码的问题及解决

    这篇文章主要介绍了Python转json时出现中文乱码的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 深入解析Python中的list列表及其切片和迭代操作

    深入解析Python中的list列表及其切片和迭代操作

    这篇文章主要介绍了Python中的列表及其切片和迭代操作,文中还对tuple元组作了介绍,需要的朋友可以参考下
    2016-03-03
  • Python图片处理模块PIL操作方法(pillow)

    Python图片处理模块PIL操作方法(pillow)

    这篇文章主要介绍了Python图片处理模块PIL操作方法(pillow),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 教你怎么用python selenium实现自动化测试

    教你怎么用python selenium实现自动化测试

    今天带大家学习怎么用python selenium实现自动化测试,文中有非常详细的介绍及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python PyTorch实现Timer计时器

    Python PyTorch实现Timer计时器

    这篇文章主要为大家详细介绍了Python PyTorch如何实现简单的Timer计时器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-08-08
  • python根据多个文件名批量查找文件

    python根据多个文件名批量查找文件

    这篇文章主要为大家详细介绍了python根据多个文件名批量查找文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 利用Python实现批量下载上市公司财务报表

    利用Python实现批量下载上市公司财务报表

    这篇文章主要为大家介绍了如何利用Python做个小工具,可以批量把某网站上的上市公司的财报下下来。文中的示例代码讲解详细,感兴趣的可以动手试一试
    2022-03-03
  • Python利用蒙特卡罗模拟期权定价

    Python利用蒙特卡罗模拟期权定价

    期权是一种合约,它赋予买方在未来某个时间点以特定价格买卖资产的权利。本文将利用蒙特卡罗模拟期权定价,感兴趣的小伙伴可以了解一下
    2022-04-04

最新评论