教程参考:https://www.runoob.com/selenium/selenium-tutorial.html
对chrome操作:
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = Options()
#保持浏览器不关闭
chrome_options.add_experimental_option("detach", True)
#无头模式
# chrome_options.add_argument("--headless") # 启用无头模式
# chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速
#chrome_options.add_argument("--window-size=1920,1080") # 设置窗口大小
#禁止图片加载,加快速度
chrome_options.add_argument("--blink-settings=imagesEnabled=false")
#禁止js,加快速度
#chrome_options.add_argument("--disable-javascript")
#关闭错误log
chrome_options.add_argument('--log-level=3') #只显示 FATAL 级别日志(隐藏 INFO/WARNING/ERROR)
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) #禁用大部分控制台日志输出
# driver = webdriver.Chrome(options=chrome_options)
# 指定 chromedriver 路径
service = Service(executable_path=r'C:\chromedriver-win64\chromedriver.exe')
# 启动浏览器
driver = webdriver.Chrome(service=service, options=chrome_options)
# 打开百度首页
driver.get("https://www.baidu.com")
#time.sleep(3)
# 设置隐式等待时间为 10 秒
# driver.implicitly_wait(10)
# 查找搜索框元素
# search_box = driver.find_element(By.ID, "chat-textarea")
#等待搜索框元素,不用#time.sleep
#wait = WebDriverWait(driver, 10)
#search_box = wait.until(EC.presence_of_element_located((By.ID, 'chat-textarea')))
#等待搜索框元素,更高效
search_box=driver.find_element(By.ID, "chat-textarea")
if not search_box.is_displayed():
WebDriverWait(driver, 10).until(EC.visibility_of(search_box))
print(driver.title)
# 在搜索框中输入 "hello"
search_box.send_keys("hello")
# 模拟按下回车键
search_box.send_keys(Keys.RETURN)
#按下百度按钮
# wait = WebDriverWait(driver, 10)
# search_botton = wait.until(EC.presence_of_element_located((By.ID, 'chat-submit-button')))
# search_botton.click()
# 等待搜索结果加载(至少一个结果出现)
#wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#content_left .result")))
# 验证标题包含搜索词(百度搜索后标题通常是“搜索词_百度搜索”)
#assert "hello" in driver.title, "页面标题未包含搜索词"
# 验证搜索结果页面是否包含关键词
#assert "hello" in driver.page_source
#time.sleep(2)
# 截取页面截图并保存
# screenshot_path = "screenshot.png"
# driver.save_screenshot(screenshot_path)
# print(f"截图已保存到: {screenshot_path}")
# 关闭浏览器
#driver.quit()对360极速浏览器操作
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = Options()
#保持浏览器不关闭
# chrome_options.add_experimental_option("detach", True)
#无头模式
# chrome_options.add_argument("--headless") # 启用无头模式
# chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速
# chrome_options.add_argument("--window-size=1920,1080") # 设置窗口大小
#禁止图片加载,加快速度
chrome_options.add_argument("--blink-settings=imagesEnabled=false")
#禁止js,加快速度
#chrome_options.add_argument("--disable-javascript")
#关闭错误log
chrome_options.add_argument('--log-level=3') #只显示 FATAL 级别日志(隐藏 INFO/WARNING/ERROR)
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) #禁用大部分控制台日志输出
# driver = webdriver.Chrome(options=chrome_options)
chrome_options.binary_location = r"C:\360极速浏览器\360Chrome\Chrome\Application\360chrome.exe" # 修改为你的 360 浏览器路径
# 可选:添加启动参数,强制使用极速模式(Chromium 内核)
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-extensions")
#个人数据
chrome_options.add_argument(r'--user-data-dir=C:\360极速浏览器\360Chrome\Chrome\User Data')
chrome_options.add_argument('--profile-directory=Default')
# 指定 chromedriver 路径
service = Service(executable_path=r'C:\360极速浏览器\chromedriver.exe')
# 启动浏览器
driver = webdriver.Chrome(service=service, options=chrome_options)
# 打开百度首页
driver.get("https://www.baidu.com")
#time.sleep(3)
# 设置隐式等待时间为 10 秒
# driver.implicitly_wait(10)
# 查找搜索框元素
# search_box = driver.find_element(By.ID, "chat-textarea")
#等待搜索框元素,不用#time.sleep
#wait = WebDriverWait(driver, 10)
#search_box = wait.until(EC.presence_of_element_located((By.ID, 'chat-textarea')))
#等待搜索框元素,更高效
search_box=driver.find_element(By.ID, "chat-textarea")
if not search_box.is_displayed():
WebDriverWait(driver, 10).until(EC.visibility_of(search_box))
print(driver.title)
# 在搜索框中输入 "hello"
search_box.send_keys("hello")
# 模拟按下回车键
search_box.send_keys(Keys.RETURN)
#按下百度按钮
# wait = WebDriverWait(driver, 10)
# search_botton = wait.until(EC.presence_of_element_located((By.ID, 'chat-submit-button')))
# search_botton.click()
# 等待搜索结果加载(至少一个结果出现)
#wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#content_left .result")))
# 验证标题包含搜索词(百度搜索后标题通常是“搜索词_百度搜索”)
#assert "hello" in driver.title, "页面标题未包含搜索词"
# 验证搜索结果页面是否包含关键词
#assert "hello" in driver.page_source
#time.sleep(2)
# 截取页面截图并保存
# screenshot_path = "screenshot.png"
# driver.save_screenshot(screenshot_path)
# print(f"截图已保存到: {screenshot_path}")
# 关闭浏览器
#driver.quit()