上一篇我们学会了怎么用Selenium定位页面元素,接下来就是要对元素进⾏操作了。
常⻅的操作有点击、提交、输⼊、清除、获取⽂本。
点击:元素.click()
输入:元素.send_keys("内容")
清空:元素.clear()
拿标签间文字:元素.text
拿标签属性值(如按钮文字):元素.get_attribute("属性名")
拿页面标题/URL:driver.title / driver.current_url
点击 ——click()
适用场景:点击按钮、链接、复选框等,比如我们百度搜索时,点击“百度一下”按钮。
# 找到“百度一下”按钮,然后点击 driver.find_element(By.CSS_SELECTOR, "#su").click()定位到元素后,直接加 .click() 就可以实现点击
输入 ——send_keys("内容")
适用场景:在输入框中输入文字,比如百度搜索框输入明星名字、关键词。
# 找到百度搜索框,输入“迪丽热巴” driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("迪丽热巴")输入的内容一定要用双引号/单引号括起来,不然会报错!如果想输入空格、回车,也可以用send_keys,比如 send_keys(Keys.ENTER)(需要导入Keys模块)。
清空输入框内容 ——clear()
适用场景:输入错误内容,或者想换一个关键词搜索时,先清空输入框再重新输入。
# 1. 输入第一个关键词 driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("2025") # 2. 等待1秒 time.sleep(1) # 3. 清空输入框 driver.find_element(By.CSS_SELECTOR, "#kw").clear() # 4. 等待1秒 time.sleep(1) # 5. 输入第二个关键词 driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("2026")获取文本信息 ——text
适用场景:判断页面元素的文字是否符合预期,比如获取百度热搜的第一条文字,打印出来核对。
# 找到百度热搜第一条,获取它的文本 text = driver.find_element(By.XPATH,'//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]').text # 打印获取到的文本 print(f"百度热搜第一条:{text}")能不能用 .text 获取“百度一下”按钮上的文字“百度一下”?
答案:不能! 很多人以为只要是文字,用.text就能获取,其实不是的——.text 只能获取「标签之间的文本」,比如 <span>热搜标题</span>,这种才能用.text拿到。
而“百度一下”按钮是 input 标签,它的文字藏在「value属性」里,不是标签之间的文本,所以用.text获取不到,会返回空值!
获取属性值—— get_attribute("属性名")
适用场景:获取元素的属性值,比如按钮的value、图片的src、链接的href等,上面的问题就用这个方法解决!
# 找到“百度一下”按钮,获取它的value属性值(就是按钮上的文字) btn_text = driver.find_element(By.CSS_SELECTOR, "#su").get_attribute("value") print(f"按钮上的文字:{btn_text}") # 输出:百度一下.text 拿标签间的文字,get_attribute 拿标签里的属性值,再也不会搞混啦!
获取页面信息——title + current_url
适用场景:判断页面是否跳转正确,比如搜索后,获取页面标题和URL,确认是不是我们想要的页面。
# 获取当前页面标题(就是浏览器标签上的文字) page_title = driver.title print(f"当前页面标题:{page_title}") # 获取当前页面URL(浏览器地址栏的链接) current_url = driver.current_url print(f"当前页面URL:{current_url}")完整实操
from selenium import webdriver from selenium.webdriver.common.by import By import time # 1. 打开Chrome浏览器 driver = webdriver.Chrome() # 2. 打开百度页面 driver.get("https://www.baidu.com") # 3. 输入关键词 driver.find_element(By.CSS_SELECTOR, "#chat-textarea").send_keys("古力娜扎") time.sleep(1) # 4. 点击“百度一下” driver.find_element(By.CSS_SELECTOR, "#chat-submit-button").click() time.sleep(2) # 5. 获取页面标题和URL print("页面标题:", driver.title) print("当前URL:", driver.current_url) # 6. 获取“百度一下”按钮文字 btn_text = driver.find_element(By.CSS_SELECTOR, "#chat-submit-button").get_attribute("value") print("按钮文字:", btn_text) # 7. 关闭浏览器 time.sleep(3) driver.quit()