有道可以在上面編輯如果有好的解決方法歡迎加入編寫。轉(zhuǎn)載:有道ChromeLine 解決方法收集
整理不易請來個贊唄弟孟!(歡迎打賞)
? ? 要使得Chrome支持與應(yīng)用程序交互分唾,首先需要指定遠程調(diào)試端口。在命令行啟動一個Chrome實例,并加上下面的參數(shù),并等待其啟動完成价脾。9222表示啟動瀏覽器遠程調(diào)試端口,端口號可自定,但需要確保端口未被占用.也可自己定義調(diào)試端口.chrome.exe --remote-debugging-port=9222
? ? ?這之后打開http://localhost:9222 或者 http://127.0.0.1:9222/ 就能看到你開啟的Chrome實例中所有打開的標(biāo)簽頁面蔬充,點擊其中一個標(biāo)簽,即可開始調(diào)試目標(biāo)頁面蝶俱。
三.導(dǎo)航標(biāo)簽(TAG)的訪問與控制
獲取所有打開的標(biāo)簽的信息,訪問
標(biāo)簽管理
? ? ?瀏覽器啟動后,我們就可以在程序中通過socket的方式實現(xiàn)和chrome的交互了饥漫。Chrome Debug API包括兩個部分:標(biāo)簽管理和頁面管理榨呆。首先我們介紹標(biāo)簽管理部分,它是Rest形式的API接口庸队,我們可以通過瀏覽器進行協(xié)議的模擬积蜻。
? ?首先用瀏覽器打開http://localhost:9222/json 或者?http://127.0.0.1:9222/json,這是當(dāng)前所有標(biāo)簽的list接口彻消,可以看到如下接口數(shù)據(jù):
[ {? "description": "",? "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/dae364ad-456c-4779-a2d7-53cd487c5357",? "faviconUrl": "https://www.baidu.com/favicon.ico",? "id": "dae364ad-456c-4779-a2d7-53cd487c5357",? "title": "百度一下竿拆,你就知道",? "type": "page",? "url": "https://www.baidu.com/",? "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/dae364ad-456c-4779-a2d7-53cd487c5357"}, {? "description": "",? "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:9222/devtools/page/f2da603a-5914-406c-a08d-a084edeec736",? "id": "f2da603a-5914-406c-a08d-a084edeec736",? "title": "Developer Tools - https://www.baidu.com/",? "type": "page",? "url": "http://localhost:9222/json",? "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/f2da603a-5914-406c-a08d-a084edeec736"} ]
Description: 與標(biāo)簽相關(guān)的描述信息
DevtoolsFrontendUrl: 與這個標(biāo)簽相關(guān)聯(lián)的頁面的前端調(diào)試地址,可將該URL復(fù)制到瀏覽器中直接訪問即可調(diào)試目標(biāo)頁面
Id: 用于標(biāo)識和定位這個標(biāo)簽的唯一身份信息(這個重要)
Title: 當(dāng)前標(biāo)簽上顯示的標(biāo)題信息
Type: 標(biāo)簽的類型
Url: 與標(biāo)簽相關(guān)聯(lián)的頁面所加載的URL地址
WebSocketDebuggerUrl: 與這個標(biāo)簽相關(guān)聯(lián)的頁面的后端調(diào)試地址(第三方接口)
除此之外,常見的訪問命令如下:
http://127.0.0.1:9222/json?:查看已經(jīng)打開的Tab列表
http://127.0.0.1:9222/json/version?: 查看瀏覽器版本信息
http://127.0.0.1:9222/json/new?http://www.baidu.com?: 新開Tab打開指定地址
激活標(biāo)簽,需要傳入該標(biāo)簽的ID
http://localhost:9222/json/activate/f2da603a-5914-406c-a08d-a084edeec736
關(guān)閉標(biāo)簽,需要傳入該標(biāo)簽的ID
http://localhost:9222/json/close/f2da603a-5914-406c-a08d-a084edeec736
頁面操作
? ? ? 前面的API只能做到簡單的打開宾尚,關(guān)閉標(biāo)簽操作丙笋,我么往往還需要對頁面進行更詳細的操作!那么我們開始進入用易語言代碼來實現(xiàn)控制瀏覽器煌贴。
下載最新的軟件地址:http://ps-works.cn/open-source.html
源碼下載地址:https://github.com/kirino17/chromelink
模塊如下:
所有的控制都是圍繞著標(biāo)簽ID來操作御板,多線程時也是一樣的激活對應(yīng)的ID進程操作。
現(xiàn)在以單線程的來舉例:在模塊中添加這一段代碼
------------------------------單開瀏覽器-remote-debugging-port=--------------------------------
版本 2
.支持庫 eAPI
.子程序 Chrome_單線程, , 公開, 重要取出? 連接對象 例:Chrome.置瀏覽器EX( “C:\.安裝路徑.\chrome.exe”, 9222, 真)
.參數(shù) 參_路徑, 文本型
.參數(shù) 參_端口, 整數(shù)型
.參數(shù) 參_隱身, 邏輯型, , 真/假
.局部變量 局部_命令行, 文本型
.局部變量 局部_調(diào)試端口, 文本型
' ////////////////////////////////////////////////////////////////////// 第1步
局部_命令行 = 格式化文本 (“%s --remote-debugging-port=%d %s”, 參_路徑, 參_端口, 選擇 (參_隱身, “--incognito”, “ ”))
WinExec (局部_命令行, 5)
局部_調(diào)試端口 = 格式化文本 (“l(fā)ocalhost:%d”, 參_端口)
m_chromeAddress = 局部_調(diào)試端口
------------------------------多開瀏覽器-remote-debugging-port=%d --user-data-dir=-----------------------
.版本 2
.支持庫 eAPI
.子程序 OpenChrome, 邏輯型, 公開, 啟動一個瀏覽器,成功返回真,失敗返回假
.參數(shù) 瀏覽器路徑, 文本型, , 結(jié)尾不帶"\"
.參數(shù) 調(diào)試端口, 整數(shù)型
.參數(shù) 緩存目錄, 文本型
.參數(shù) 清空緩存, 邏輯型, 可空, 如果緩存目錄中存在文件數(shù)據(jù),將全部刪除
.參數(shù) 備份初始化數(shù)據(jù)目錄, 文本型, , 結(jié)尾不帶"\"
.局部變量 tempCachePath, 文本型
.如果真 (是否為空 (清空緩存) 或 清空緩存 = 真)
? ? 刪除目錄 (緩存目錄)
? ? 處理事件 ()
? ? 創(chuàng)建目錄 (緩存目錄)
? ? 處理事件 ()
? ? _復(fù)制_初始化文件 (緩存目錄, 備份初始化數(shù)據(jù)目錄)
.如果真結(jié)束
tempCachePath = 子文本替換 (緩存目錄, “\”, “\\”, , , 真)
返回 (運行 (格式化文本 (“%s --remote-debugging-port=%d --user-data-dir=” + #引號 + “%s” + #引號, 瀏覽器路徑, 調(diào)試端口, 緩存目錄), 假, #普通激活))? ' 多開瀏覽器需先設(shè)置目錄
--------------------------------------------------------------
啟動時異常情況:
解決運行庫問題的方法
把下載下來的文件包中:vc++?runtime?package文件夾內(nèi)的所有文件復(fù)制到運行目錄下牛郑。
如何元素定位: