python selenium find_elements PythonSele
目录
- Python Selenium 搜索和点击
- &x1f527; 1. 环境准备
- &x1f50d; 2. 执行 Google 搜索
- &x1f5b1;&xfe0f; 3. 定位并点击搜索结局
- &x26a0;&xfe0f; 4. 处理独特情况
- &x1f6e0;&xfe0f; 5. 完整代码示例
- &x1f4cc; 6. 关键注意事项
Python Selenium 搜索和点击
&x1f527; 1. 环境准备
- 安装依赖
安装 Selenium 库并配置浏览器驱动(以 Chrome 为例):
uv add selenium webdriver-manager 自动管理驱动版本
- 初始化浏览器
使用 webdriver-manager
自动处理驱动路径难题:
from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(ChromeDriverManager().install())driver.maximize_window() 最大化窗口避免元素遮挡
&x1f50d; 2. 执行 Google 搜索
输入关键词并提交
定位 Google 搜索框并模拟回车键提交搜索:
from selenium.webdriver.common.keys import Keysdriver.get(“https://www.google.com”)search_box = driver.find_element(“name”, “q”) 通过 name 定位搜索框search_box.send_keys(“Python 自动化测试”)search_box.send_keys(Keys.RETURN) 回车提交搜索
&x1f5b1;&xfe0f; 3. 定位并点击搜索结局
等待结局加载
使用显式等待确保结局加载完成,避免因网络延迟失败:
from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By 等待结局区域出现(最长10秒)WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, “div.g”)))
- 点击指定结局
方案1:点击特定位置结局(如第一条)
first_result = driver.find_element(By.CSS_SELECTOR, “div.g a”) 定位第一条结局的链接first_result.click()
方案2:随机点击一个结局
from random import choiceall_results = driver.find_elements(By.CSS_SELECTOR, “div.g a”) 获取所有结局链接random_result = choice(all_results) 随机选择一个random_result.click()
&x26a0;&xfe0f; 4. 处理独特情况
元素不可点击时
若普通点击失效(如元素被遮挡),用 JavaScript 强制执行点击:
driver.execute_script(“arguments[0].click();”, random_result)
过滤广告链接
通过选择器排除广告区域(通常包含 class="ads"
的元素):
valid_results = driver.find_elements(By.XPATH, ‘//div[@class=”g”]/a[not(ancestor::div[@class=”ads”])]’)
&x1f6e0;&xfe0f; 5. 完整代码示例
实际上,检索的代码会发生变化,需要我们如实调整,实测有效的代码如下:
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom webdriver_manager.chrome import ChromeDriverManagerfrom random import choiceoptions = webdriver.ChromeOptions() 绕过人机检测options.add_argument(“–disable-blink-features=AutomationControlled”)options.add_experimental_option(“excludeSwitches”, [“enable-automation”])options.add_experimental_option(“useAutomationExtension”, False)driver = webdriver.Chrome(options=options)driver.get(“https://www.google.com”) 搜索关键词search_box = driver.find_element(By.NAME, “q”)search_box.send_keys(“Python Selenium 教程”)search_box.send_keys(Keys.RETURN) 等待结局加载WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, “div.b8lM7”)))results = driver.find_elements(By.CSS_SELECTOR, “a h3”)if results: target = choice(results) target.click() 或 driver.execute_script(“arguments[0].click();”, target)else: print(“未找到有效结局”) 后续操作(如数据提取)print(“当前页面深入了解:”, driver.title) 关闭浏览器driver.quit()
&x1f4cc; 6. 关键注意事项
- 反爬虫机制:Google 会检测自动化行为,需控制频率(如添加
time.sleep(2)
),避免 IP 被封。 - 元素定位更新:Google 页面结构可能变化,若 CSS 选择器失效需调整(如改用 XPath)。
- 浏览器兼容性:若使用 Firefox 或 Edge,需替换为对应驱动(如
GeckoDriverManager
)。
此方案覆盖了从环境配置到动态交互的全流程,适用于自动化测试或数据采集场景。实际使用时建议结合异常处理(如
try/except
)增强稳定性。
到此这篇关于Python Selenium 搜索和点击示例代码的文章就介绍到这了,更多相关Python Selenium搜索和点击内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
无论兄弟们可能感兴趣的文章:
- Python使用Selenium自动进行百度搜索的实现
- python+selenium实现自动化百度搜索关键词
- Python使用Selenium+BeautifulSoup爬取淘宝搜索页
- python+Selenium自动化测试——输入,点击操作
- python+selenium 点击单选框-radio的实现技巧
- Python+selenium点击网页上指定坐标的实例
- python+selenium 定位到元素,无法点击的解决技巧
- python+selenium实现登录账户后自动点击的示例