selenium操作各種瀏覽器
#coding:utf-8
from selenium import
webdriver
from selenium.webdriver.chrome.options import
options
import
time
#配置360瀏覽器位址開始
__browser_url = r''#
瀏覽器目錄位址
chrome_driver = "
"chrome_options =options()
chrome_options.binary_location = __browser_url
#配置360瀏覽器位址結束
brower = webdriver.chrome(chrome_driver,options=chrome_options)
#brower = webdriver.firefox()
#brower = webdriver.ie()
brower.find_elements_by_......
瀏覽器啟用方式
啟動chrome瀏覽器:
from selenium import webdriver
browser = webdriver.chrome()
browser.get('')
啟動firefox瀏覽器:
from selenium import webdriver
browser = webdriver.firefox()
browser.get('')
啟動ie瀏覽器:
from selenium import webdriver
browser = webdriver.ie()
browser.get('')
新增瀏覽器引數add_argument
chrome_options.add_argument('--引數1 --引數2')
chrome_options.add_experimental_option('excludeswitches', ['enable-logging']) #不輸出console.log的日誌內容到控制台
chrome_options.add_argument('--start-maximized') # 最大化執行(全屏視窗),不設定,取元素會報錯
chrome_options.add_experimental_option('excludeswitches', ['enable-automation']) #規避部分**對selenium的檢測
browser = webdriver.chrome(options=chrome_options) #載入引數
具體可參見 ,該**羅列了所有的引數。
設定**
headless方式啟動
headless chrome 是 chrome 瀏覽器的無介面形態,可以在不開啟瀏覽器的前提下,使用所有 chrome 支援的特性執行你的程式。相比於現代瀏覽器,headless chrome 更加方便測試 web 應用,獲得**的截圖,做爬蟲抓取資訊等。相比於較早的 phantomjs,slimerjs 等,headless chrome 則更加貼近瀏覽器環境。
headless chrome 對chrome版本要求:
官方文件中介紹,mac和linux環境要求chrome版本是59+,而windows版本的chrome要求是60+,同時chromedriver要求2.30+版本。
from selenium importwebdriver
chrome_options =webdriver.chromeoptions()
#使用headless無介面瀏覽器模式
chrome_options.add_argument('
--headless')
chrome_options.add_argument(
'--disable-gpu')
#啟動瀏覽器,獲取網頁源**
browser = webdriver.chrome(options=chrome_options)
載入配置啟動瀏覽器
selenium操作瀏覽器是不載入任何配置的,下面是關於載入chrome配置的方法:
# coding=utf-8
from selenium import webdriver
option = webdriver.chromeoptions()
# 設定成使用者自己的資料目錄
driver=webdriver.chrome(options=option)
單獨配置瀏覽器selenium驅動位置
driver = webdriver.chrome(chrome_driver, chrome_options=chrome_options)
而載入firefox配置的方法有些不同:
開啟firefox點右上角設定》?(幫助)>故障排除資訊》顯示資料夾,開啟後把路徑複製下來就可以了
#coding=utf-8
from selenium import
webdriver
#配置檔案位址
profile_directory = r''#
載入配置配置
profile =webdriver.firefoxprofile(profile_directory)
#啟動瀏覽器配置
driver = webdriver.firefox(profile)
使用selenium控制已開啟的瀏覽器
這裡給出google chrome瀏覽器的解決方案。
我們可以利用chrome devtools協議。它允許客戶檢查和除錯chrome瀏覽器。
開啟cmd,在命令列中輸入命令:
chrome.exe --remote-debugging-port=9222 --user-data-dir="c:\selenum\automationprofile"
還有,不要忘了在環境變數中path裡將chrome的路徑新增進去。
from selenium importwebdriver
from selenium.webdriver.chrome.options import
options
chrome_options =options()
chrome_options.add_experimental_option(
"debuggeraddress
", "
127.0.0.1:9222")
chrome_driver = "
"driver = webdriver.chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)
webdriver.chrome()
switch_to_alert()
quit() 退出瀏覽器
元素定位
查詢一組元素
或者在每個class前面加上點
元素操作方法
鍵盤組合鍵的用法:
傳送文字
click() 單擊
clear() 清除物件內容
submit() 提交
text() 獲取元素文字資訊
獲取元素屬性和文字
get_property()
將瀏覽器最小化顯示
瀏覽器設定視窗大小
瀏覽器前進後退
後退三種等待方式
隱性等待
隱性等待對整個driver的週期都起作用,所以只要設定一次即可
顯性等待
多層框架定位
xpath&css定位方法速查表
python webdriver exception速查表
webdriver在使用過程中可能會出現各種異常,我們需要了解該異常並知道如何進行異常處理。
網頁指令碼加密解密
大家都有這樣很煩地經歷 可能在網上衝浪時,ie會莫名被被改的希奇古怪了,收藏家也多了 許多什麼什麼精美 之類的 我後來研究這種網頁,隱藏的很深的,首先發現它的主頁有這 樣的 有引用什麼www.coolstarpage.com的 大家可以去看看 document.write 檔案ieatt.htm 這...
PHP動態網頁指令碼
php php hypertext preprocessor 是一種在電腦上執行的指令碼語言,主要是用途在於處理動態網頁,也包含了命令列執行介面 command line inte ce 或者產生圖形使用者介面 gui 程式。php 最早由 rasmus lerdorf 在1995年發明,現在php...
JavaScript網頁指令碼效能優化
訪問dom的方式對指令碼效能會產生非常大的影響。以下面 為例 if document.getelementsbytagname a length 0 這段 可以執行,本身並沒有什麼問題,但它卻不是我們期望的最優性能。細看這段 可以發現其先後兩次使用dom方法getelementsbytagname ...