Web-元素定位和脚本-Selenium

本文介绍了Selenium的八种元素定位方法,包括XPath、CSS选择器、ID、名称、类名、标签名、链接文本及部分链接文本。Selenium因其开源、多浏览器与平台支持、多语言接口及灵活性等优点,成为自动化测试的常用工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、八种定位方式

1、driver.find_element_by_xpath(value)

2、driver.find_element_by_css_selector(value)

3、driver.find_element_by_id(value)

4、driver.find_element_by_name(value)

5、driver.find_element_by_class_name(value)

6、driver.find_element_by_tag_name(value)


 

Selenium特点 

  1. 开源,免费
  2. 多浏览器支持:firefox、chrome、IE
  3. 多平台支持:linux 、windows、MAC
  4. 多语言支持:java、python、ruby、php、C#、
  5. 对web页面有良好的支持
  6. 简单(API 简单)、灵活(用开发语言驱动)
  7. 支持分布式测试用例执行

 

一、八种定位方式

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"]').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")//通过标签名去定位,不推荐重复率很高

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" 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()

// 搜索百度使用f12定位到按钮的位置
<a href="http://news.baidu.com" 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()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值