首页 > 其他分享 >Selenium4自动化测试2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME

Selenium4自动化测试2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME

时间:2024-05-08 19:11:19浏览次数:21  
标签:webdriver 浏览器 NAME -- driver CLASS chrome options

三、元素定位方式

1-通过id定位,By.ID

id属性在HTML中是唯一的,因此使用id定位可以确保找到页面上唯一的元素。

由于id是唯一的,浏览器在查找元素时可以快速定位到目标元素,提高了定位的效率。

 

import time

#pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 使用get方法,访问网址
driver.get('https://www.baidu.com/')
#窗口最大化
driver.maximize_window()
#1 找到输入框的位置,输入万笑佛博客园
element = driver.find_element(By.ID,'kw')
element.send_keys("老虎资源分享")
#2 找到搜索框的位置,点击搜索
#单数查找
driver.find_element(By.CLASS_NAME,'s_btn').click()

time.sleep(3)
driver.quit()

 

2-通过类名定位,By.CLASS_NAME

 

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 窗口最大化
driver.maximize_window()
driver.get("https://www.bilibili.com/")
# 只获取class属性的第一个元素
driver.find_element(By.CLASS_NAME,'nav-search-input').send_keys("老虎资源分享")
time.sleep(3)
driver.find_element(By.CLASS_NAME,'channel-link').click()
# 获取class属性的所有元素
# driver.find_elements(By.CLASS_NAME,'channel-link')[4].click()
# for ele in driver.find_elements(By.CLASS_NAME,'channel-link'):
#     print(ele.text)
# 错误用法
#driver.find_element(By.CLASS_NAME,'icon-bg icon-bg__channel').click()

time.sleep(3)

 

3-通过标签名定位,By.TAG_NAME

一个网页,相同的标签的元素的概率非常高,因为我们尽量少通过tag_name定位单个元素

 

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)


# 窗口最大化
driver.maximize_window()
driver.get("https://www.bilibili.com/")
driver.find_element(By.TAG_NAME, "input").send_keys("老虎资源分享")

time.sleep(3)

 

 

 

 

 

标签:webdriver,浏览器,NAME,--,driver,CLASS,chrome,options
From: https://www.cnblogs.com/yclh/p/18180683

相关文章

  • 个人练习(每个同学都要提交)——学习和使用多个平台上的测试工具 请使用两种以上平台上
    在本小组项目中,我们使用以下两种平台上的测试工具:Postman和Swagger。Postman:Postman是一款功能强大的API测试工具,可以用于创建、调试和测试API。首先,我们需要创建一个Postman账号,并安装Postman应用程序。在项目中,我们可以使用Postman来进行API端点的测试。我们可以创建多个请求......
  • mysql面试题
    索引失效1.模糊查询2.使用函数和计算:3.不匹配的数据类型:4.使用OR条件的不同索引列:5.复合索引的最左前缀原则:6.索引列在条件中使用负向查询:如NOTIN、NOTEXISTS、NOTLIKE等负向查询条件可能会导致索引失效。7.索引列在条件中使用NULL:当索引列中包含NULL值,并且在查询条件......
  • js圣杯模式
    //圣杯模式改变子属性不会影响父对应的属性//functioninherit(Target,Origin){//functionF(){}//F.prototype=Origin.prototype//Target.prototype=newF()//Target.prototype.constuctor=Target//}varinherit=......
  • RocketMQ模型和生产实践
    RocketMQ的客户端编程模型相对⽐较固定,基本都有⼀个固定的步骤。掌握这个固定步骤,对于学习其他复杂的消息模型也是很有帮助的。消息⽣产者的固定步骤1.创建消息⽣产者producer,并指定⽣产者组名2.指定Nameserver地址,可以在代码中固定写IP,也可以通过配置项来写,最好是配置项,这样更......
  • 霓虹行 游记
    因为这周有十万件事情,所以每天会写一点点,可以每天看,也可以养肥了看。如果未来大家有什么旅游计划,欢迎联系我,自由行的话我可以负责干活。Day-?~Day-??决定去霓虹玩Day0从天津出发去沈阳Day1去了沈阳故宫,坐飞机去OsakaDay2去OsakaCastle去京都去岚山去花见小路......
  • Selenium4自动化测试1--Chrome浏览器和chromedriver
    selenium的介绍Selenium是一个用于Web应用程序测试的强大工具,可以模拟用户在浏览器中的行为。它提供了一组功能丰富的工具和库,使您能够自动化浏览器操作,进行功能测试、回归测试和跨浏览器测试。Selenium原理 它需要模拟浏览器的操作所以需要用到浏览器和浏览器驱动。一、......
  • uniapp 新建文件
    uniapp新建文件支持ios和androidfunctioncreateFile(bases64,item,savedFilePathOne){//请求文件系统plus.io.requestFileSystem(plus.io.PRIVATE_DOC,function(fs){//letstorageAddress=fs.root.toURL();//创建文件fs.root.getFile......
  • VectSharp一个C#轻量级矢量图形库
    VectSharp是一个功能强大的C#库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括Mac、Windows和Linux。使得开发者可以更容易地在他们的项目中集成矢量图形的生成和处理。https://github.com/arklumpus/VectSharp特点:内置字体:包含了14种标准字体,这些字体......
  • Mysql中的双路排序和单路排序
    在Mysql中使用orderby进行排序的时候,是可以使用到索引排序的,但是需要添加一些限制条件,例如:select*fromt_userwherename='张三'orderbyname;使用这种方式就可以使用到索引,同时使用limit也是可以使用到索引的select*fromt_userorderbyname;通过这种方式不会使用到索......
  • 【译】下一个大型编程语言是英语(自然语言)
    来源:every.to/chain-of-thought/i-spent-24-hours-with-github-copilot-workspacesGitHubCopilot就像程序员的自动完成功能。当你输入时,它猜测你想要完成什么,并建议它认为你将要编写的代码块。如果它猜对了——而它经常猜对——你只需按下Tab键,它会为你填写剩下的部分。......