博客 / 詳情

返回

Selenium打開瀏覽器及接管瀏覽器

1.使用Selenium打開瀏覽器

  1. 下載好Chrome驅動,如果訪問不了外網,可以從這裏下載,有各種新老版本及瀏覽器,有win\mac\linux適配的包以及無頭模式的包
  2. 使用python執行下列文件內容
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# 初始化瀏覽器驅動(Chrome)
# 如果驅動已在環境變量中,可簡化為:driver = webdriver.Chrome()
# 關於如何設置環境變量,請自行百度
# path/to/chromedriver改成你的chrome驅動包的路徑
# 比如 driver = webdriver.Chrome(executable_path=r'C://chromedriver')
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

try:
    # 打開網頁
    driver.get("https://www.baidu.com")
    
    # 最大化窗口
    driver.maximize_window()
    
    # 查找搜索框並輸入內容
    search_box = driver.find_element(By.ID, "kw")
    search_box.send_keys("Selenium")
    
    # 模擬按下回車鍵
    search_box.send_keys(Keys.RETURN)
    
    # 等待3秒,讓頁面加載完成
    time.sleep(3)
    
    # 獲取搜索結果標題並打印
    results = driver.find_elements(By.CSS_SELECTOR, ".result h3 a")
    for i, result in enumerate(results[:5]):  # 只打印前5條結果
        print(f"{i+1}. {result.text}")
    
    # 截圖保存
    driver.save_screenshot("search_results.png")

finally:
    # 關閉瀏覽器
    driver.quit()

2.使用Selenium接管已打開瀏覽器

1.使用命令行(cmd)啓動瀏覽器調試模式

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\selenium_chrome_data" 
# macOS/Linux 示例 
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/tmp/selenium_chrome_data"

2.python執行下列代碼,其中9222就是一步裏的--remote-debugging-port=9222需保持一致

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

# 配置 Chrome 選項
chrome_options = Options()
# 連接到已開啓調試模式的瀏覽器
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

# 初始化驅動,連接到已打開的瀏覽器
driver = webdriver.Chrome(options=chrome_options)

try:
    # 現在可以控制已打開的瀏覽器了
    print("成功接管瀏覽器,當前頁面標題:", driver.title)
    
    # 示例操作:打開一個新網頁
    driver.get("https://www.baidu.com")
    time.sleep(2)
    
    # 在已打開的瀏覽器中執行其他操作
    if "百度" in driver.title:
        search_box = driver.find_element("id", "kw")
        search_box.send_keys("Selenium 接管瀏覽器")
        search_box.submit()
        time.sleep(3)

finally:
    # 注意:這裏使用close()而不是quit(),避免關閉整個瀏覽器
    # driver.close()  # 關閉當前標籤頁
    pass  # 保持瀏覽器打開
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.