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

selenium4,by,id,class,name,tag · 浏览次数 : 0

小编点评

**元素定位方式 1:通过 ID 定位** ```python import time # 指定浏览器的位置 chrome_location = r'D:\\pythonProject2023\\SeleniumFirst\\chrome-win64\\chrome.exe' # 创建 Chrome 对象 driver = webdriver.Chrome(chrome_location, options=webdriver.ChromeOptions()) # 找到输入框元素 element = driver.find_element(By.ID, 'kw') element.send_keys("老虎资源分享") # 找到搜索框元素 driver.find_element(By.CLASS_NAME, 's_btn').click() time.sleep(3) # 退出浏览器 driver.quit() ``` **元素定位方式 2:通过类名定位** ```python import time # 指定浏览器的位置 chrome_location = r'D:\\pythonProject2023\\SeleniumFirst\\chrome-win64\\chrome.exe' # 创建 Chrome 对象 driver = webdriver.Chrome(chrome_location, options=webdriver.ChromeOptions()) # 找到所有元素中第一个元素 element = driver.find_element(By.CLASS_NAME, 'nav-search-input') element.send_keys("老虎资源分享") # 遍历所有元素并打印文本 for ele in driver.find_elements(By.CLASS_NAME, 'channel-link'): print(ele.text) ``` **元素定位方式 3:通过标签名定位** ```python import time # 指定浏览器的位置 chrome_location = r'D:\\pythonProject2023\\SeleniumFirst\\chrome-win64\\chrome.exe' # 创建 Chrome 对象 driver = webdriver.Chrome(chrome_location, options=webdriver.ChromeOptions()) # 找到所有 input 元素 elements = driver.find_elements(By.TAG_NAME, "input") # 找到第一个 input 元素 element = elements[0] element.send_keys("老虎资源分享") ```

正文

三、元素定位方式

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)

 

 

 

 

 

与Selenium4自动化测试2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME相似的内容: