Selenium4自動化測試2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME

万笑佛發表於2024-05-08

三、元素定位方式

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)

相關文章