1.配置Chrome瀏覽器的選項
options = webdriver.ChromeOptions() # 創(chuàng)建配置對象
options.add_argument('lang=zh_CN.UTF-8') # 設置中文
options.add_argument('--headless') # 無頭參數(shù),瀏覽器隱藏在后臺運行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized') # 瀏覽器最大化
options.add_argument('--window-size=1920x1024') # 設置瀏覽器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 設置請求頭的User-Agent
options.add_argument('--incognito') # 隱身模式(無痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
# 關閉'Chrome正受到,自動測試軟件的控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 禁用圖片加載
driver.set_page_load_timeout(20) # 設置連接超時20秒
options.add_experimental_option('detach', True) # 不自動關閉瀏覽器
driver = webdriver.Chrome(options=options) # 創(chuàng)建瀏覽器對象
driver.get('https://www.baidu.com')
2.修改瀏覽器窗口大小,set_window_size() 方法來修改瀏覽器窗口的大小,maximize_window() 方法可以實現(xiàn)瀏覽器全屏顯示,get_window_size()獲取網頁的窗口大小。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# 訪問百度首頁
driver.get('https://www.baidu.com')
# 獲取網頁的窗口大小
print(driver.get_window_size()) # {'width': 1050, 'height': 708}
# 1.設置瀏覽器的寬高為:600x800
driver.set_window_size(600, 800)
time.sleep(3)
# 2.網頁界面最大化
driver.maximize_window()
time.sleep(3)
# 關閉網頁
driver.quit()
3.瀏覽器前進&后退,webdriver 提供 back 和 forward 方法來實現(xiàn)頁面的后退與前進。下面我們 ①進入百度首頁,②打開百度圖片網,③back 返回百度首頁,④ forward 前進到百度圖片網。為了看到自動化的過程,可以加延時處理,driver.title顯示網頁的標題。
import time
from selenium import webdriver
driver = webdriver.Chrome()
# 1.訪問百度首頁
driver.get('https://www.baidu.com/')
print(driver.title) # 百度一下,你就知道
time.sleep(2)
# 2.訪問百度圖片,主頁
driver.get('https://image.baidu.com/')
print(driver.title) # 百度圖片-發(fā)現(xiàn)多彩世界
time.sleep(2)
# 3.返回(后退)到百度首頁
driver.back()
time.sleep(2)
# 4.前進到百度圖片網
driver.forward()
大家會發(fā)現(xiàn)第2次 get() 打開新頁面時,會在原來的頁面打開,而不是在新標簽中打開。如果想的話,可以執(zhí)行 js 語句來打開新的標簽。
js = "window.open('https://image.baidu.com/')"
driver.execute_script(js)
4.常用的瀏覽器操作方法,自己敲代碼練習一下,這里就不一一演示了。
driver.maximize_window() # 最大化瀏覽器
driver.set_window_size(w,h) # 設置瀏覽器大小 單位像素
driver.set_window_position(x,y) # 設置瀏覽器位置
driver.back() # 后退操作
driver.forward() # 前進操作
driver.refresh() # 刷新操作
driver.close() # 關閉當前主窗口(主窗口:默認啟動那個界面,就是主窗口)
driver.quit() # 關閉driver對象啟動的全部頁面
driver.get() #要打開的網址
driver.title # 獲取當前頁面title信息
driver.current_url # 獲取當前頁面url信息
# 截圖預覽
driver.get_screenshot_as_file('截圖.png')
# 瀏覽器名稱
driver.name
# 網頁源碼
driver.page_source
5.常見元素的基本方法:在百度先輸入李白,清空李白,輸入杜甫,最后點擊查詢按鈕。

Keys
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 1.查找輸入框,并輸入關鍵詞李白
input = driver.find_element(By.ID, 'kw')
input.send_keys('李白')
time.sleep(1)
# 2.清除李白,輸入杜甫
input.clear()
time.sleep(1)
input.send_keys('杜甫')
button = driver.find_element(By.ID, 'su')
button.click()
# 輸出按鈕的大小
print(button.size) # {'height': 40, 'width': 112}
print(button.is_displayed()) # True
# 輸出value屬性的值
print(button.get_attribute('value')) # 百度一下
time.sleep(5)
# 關閉網頁
driver.quit()
完畢!!感謝您的收看