from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.maximize_window()#最大化窗口
#隱式等待
driver.implicitly_wait(10)#打開網頁
driver.get("https://www.zhipin.com/beijing/?ka=city-sites-101010100")#定位到搜索框,然后輸入內容
# driver.find_element(By.CSS_SELECTOR,'input[name="query"]').send_keys("測試工程師")
driver.find_element(By.CSS_SELECTOR,'.ipt-search').send_keys("測試工程師")driver.find_element(By.XPATH, '//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button').click()"""
id
如果某個元素的有id屬性,那么如果id屬性的值唯一,則可以利用該屬性的值定位
如果id屬性的值是一串無序的字母或者數字,則不能使用,有可能是動態id
driver.find_element(By.ID,"id屬性的值")name
根據name的屬性值來定位,但是如果name屬性的值在當前頁面不唯一,則是無法定位的
driver.find_element(By.NAME,"name值")class name
class 屬性的值,不唯一的可能性很大
driver.find_element(By.CLASS_NAME,'btn btn-search')tag name(通過標簽名本身選擇,一般無法使用,不推薦)
driver.find_element(By.TAG_NAME,"標簽名")link text(一般不要使用)partial link text(一般不要使用)xpathCSS_SELECTOR
例如driver.find_element(By.CSS_SELECTOR,'input[name="query"]')
根據<input name="query">而來
driver.find_element(By.CSS_SELECTOR,'.ipt-search')根據<input class='ipt-search'>而來
"""
補充知識:
1. CSS_SELECTOR 定位
CSS Selector 是一種通過 CSS 樣式規則來選取 HTML 元素的方法。它基于元素的標簽、類名、ID、屬性等來進行定位。常見的 CSS_SELECTOR 語法:
tag:選擇標簽名的元素,例如 div。
.class_name:選擇具有指定類名的元素。
#id:選擇具有指定 ID 的元素。
[attribute=value]:選擇具有特定屬性值的元素。
示例:使用 CSS_SELECTOR 定位
假設我們有以下 HTML 代碼:
<div id="container"><button class="btn" id="submitBtn">Submit</button><a href="https://example.com" class="link">Click Me</a>
</div>
使用 CSS_SELECTOR 定位按鈕(button 標簽,id=“submitBtn”):
from selenium import webdriver
from selenium.webdriver.common.by import By# 啟動瀏覽器
driver = webdriver.Chrome()# 打開網頁
driver.get('https://example.com')# 通過 CSS_SELECTOR 定位按鈕
button = driver.find_element(By.CSS_SELECTOR, '#submitBtn')
button.click() # 點擊按鈕# 關閉瀏覽器
driver.quit()
使用 CSS_SELECTOR 定位鏈接(a 標簽,class=“link”):
link = driver.find_element(By.CSS_SELECTOR, 'a.link')
link.click() # 點擊鏈接
常見的 CSS_SELECTOR 示例:
通過類名:div.class_name
通過 ID:#element_id
通過屬性:input[type="text"]
通過后代選擇器:div > button(選擇 div 中的 button 元素)
通過偽類:button:hover(選擇被懸浮的按鈕)
2. XPath 定位
XPath 是一種在 XML 文檔中查找信息的語言,也可以用來定位 HTML 元素。它允許通過元素的路徑、標簽、屬性、文本等來精確查找元素。常見的 XPath 語法:
/tag:選擇根元素下的 tag 元素。
//tag:選擇頁面中所有的 tag 元素。
//tag[@attribute='value']:選擇具有指定屬性的 tag 元素。
//*[text()='text_value']:根據元素的文本內容查找。
//tag[contains(@attribute, 'value')]:根據屬性包含的值進行匹配。
示例:使用 XPath 定位
假設我們有以下 HTML 代碼:
<div id="container"><button class="btn" id="submitBtn">Submit</button><a href="https://example.com" class="link">Click Me</a>
</div>
使用 XPath 定位按鈕(button 標簽,id=“submitBtn”):
button = driver.find_element(By.XPATH, '//*[@id="submitBtn"]')
button.click() # 點擊按鈕
使用 XPath 定位鏈接(a 標簽,class=“link”):
link = driver.find_element(By.XPATH, "//a[@class='link']")
link.click() # 點擊鏈接
常見的 XPath 示例:
通過元素 ID://*[@id='element_id']
通過類名://*[contains(@class, 'class_name')]
通過文本://*[text()='Click Me']
通過屬性://input[@type='text']
使用 contains://*[contains(@href, 'example')](查找包含特定文本的鏈接)