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

作者:胡桃_ 时间:2023-06-14 12:21:10 

Selenium特点

开源,免费

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

多平台支持:linux 、windows、MAC

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

对web页面有良好的支持

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

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

八种定位方式

1、driver.find_element_by_xpath(value)

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

可以使用自带的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_ESykWekftGjVFXAq * qjvQL0NG7iI1l6irIW_vdPN7h-K&wd=&eqid=d07979d2000631b10000000661443a3f" rel="external nofollow" ]').click()

2、driver.find_element_by_css_selector(value)

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


// 搜索百度使用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)

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


// 搜索百度使用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)

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


// 搜索百度使用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)

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


// 搜索百度使用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)

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


// 使用标签名进行定位
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)

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


// 搜索百度使用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)

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


// 搜索百度使用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()

来源:https://blog.csdn.net/weixin_45999852/article/details/120831902

标签:Selenium,Web,元素定位
0
投稿

猜你喜欢

  • php利用新浪接口查询ip获取地理位置示例

    2024-03-22 08:11:29
  • keras打印loss对权重的导数方式

    2023-05-17 18:21:11
  • wordpress安装过程中遇到中文乱码的处理方法

    2023-11-15 12:24:52
  • Python中使用socket发送HTTP请求数据接收不完整问题解决方法

    2021-06-29 11:43:50
  • Python读取分割压缩TXT文本文件实例

    2023-11-04 11:17:27
  • 用XML结合数据库,给服务器减负

    2007-10-31 09:40:00
  • python读写excel数据--pandas详解

    2022-08-07 03:34:13
  • php去除html标记的原生函数详解

    2024-03-17 20:23:22
  • JavaScript逆向分析instagram登入过程

    2023-09-08 19:51:52
  • Thinkphp5微信小程序获取用户信息接口的实例详解

    2023-10-26 09:57:08
  • Django实现全文检索的方法(支持中文)

    2023-12-04 14:35:13
  • 基于Python实现的微信好友数据分析

    2021-07-26 20:27:54
  • python烟花效果的代码实例

    2022-09-01 05:42:41
  • IE6模拟max-width对图片缩放

    2008-03-16 14:32:00
  • 深入JDBC sqlserver连接写法的详解

    2024-01-19 12:47:28
  • 基于python生成器封装的协程类

    2022-09-25 04:57:53
  • 在sqlserver2005中安装sql server 2000的示例数据库northwind的方法

    2024-01-18 11:00:12
  • PHP行为型模式之责任链模式

    2023-06-03 17:37:07
  • python3实现域名查询和whois查询功能

    2023-09-19 19:35:12
  • MySQL学习之数据库操作DML详解小白篇

    2024-01-14 11:59:48
  • asp之家 网络编程 m.aspxhome.com