最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Autohotkey 網(wǎng)頁自動化瀏覽器驅(qū)動庫Rufaydium初步使用

2022-09-30 23:57 作者:老張你去哪兒  | 我要投稿

寫在前面,阿B這里不支持markdown語法,但是我仍然堅持發(fā)在這里,如果看著不舒服,請移步其他網(wǎng)頁,搜索同名標(biāo)題內(nèi)容即可,知乎、CSDN都同步發(fā)布了。

Autohotkey 是一種線程語言,可以非常方便快捷地自定義各種熱鍵。在使用的過程中我初步掌握了windows桌面程序控制,并產(chǎn)生了瀏覽器控制的需求。我最先發(fā)現(xiàn)了ahk的chrome.ahk庫,這個庫最初用的很不錯,可以非常方便地控制已經(jīng)打開chrome。但是過了兩天我就 發(fā)現(xiàn)無法使用了,總是報錯,頁面無法運行腳本的安全錯誤。我看外網(wǎng)上的資料解釋說是webscoket能夠容許的線程最多6各,后臺chrome開啟太多的話,就會報錯,我按照別人的描述使用代碼修改了線程數(shù)量限制,仍然無法起作用。來來回回折騰了有四五天,最終發(fā)現(xiàn)了另一個庫,Rufaydium.ahk。這個庫支持四種瀏覽器,主流的chrome,firefox,opera,edge。在github和youtube上面都有這個庫的教程和視頻。


```Autohotkey

Brave := new Rufaydium() ; Brave browser support chromedriver.exe

; New Session will be created using Brave browser,

Session := Brave.NewSession("C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe")

Brave.Session() ; will always open new Brave session until we reset

Brave.Capabilities.Resetbinary() ; reset binary to driver default

Brave.Session() ; will create Chrome session as we have loaded Chrome driver

```


目前我發(fā)現(xiàn)這個庫有幾個缺點,1:如果使用自己的配置文件,就必須關(guān)閉其他的chrome實例;2:如果控制firefox,在調(diào)用newsession函數(shù)的時候需要把firefox.exe路徑寫進去,而且經(jīng)常報錯,用的比較少,也就沒怎么研究了。


https://github.com/Xeo786/Rufaydium-Webdriver

https://www.youtube.com/c/JoeGlines-Automator/videos


官網(wǎng)的實例如下,實現(xiàn)的功能是定義了F1和F12快捷鍵,初次運行會自動下載chromedriver.exe到腳本所在的文件夾。


```Autohotkey

#Include Rufaydium.ahk

/*

? ? Load "chromedriver.exe" from "A_ScriptDir"

? ? In case Driver is not yet available, it will Download "chromedriver.exe" into "A_ScriptDir"

? ? before starting the Driver.

*/

Chrome := new Rufaydium("chromedriver.exe")

f1::

/*

? ? Create new session if WebBrowser Version Matches the Webdriver Version.

? ? It will ask to download the compatible WebDriver if not present.

*/

Page := Chrome.NewSession()

; navigate to url

Page.Navigate("https://www.autohotkey.com/")

return


f12::

Chrome.QuitAllSessions() ; close all session

Chrome.Driver.Exit() ; then exits driver

return

```


下面是我寫的一個簡單實例,可以將自己的一些chrome配置攜帶進去進行網(wǎng)頁操作。

```Autohotkey

#Include D:\Rufaydium\Rufaydium.ahk ?;這里是自己的路徑

/*

? ? Load "chromedriver.exe" from "A_ScriptDir"

? ? In case Driver is not yet available, it will Download "chromedriver.exe" into "A_ScriptDir"

? ? before starting the Driver.

? ? 這個包在首次運行的時候會把chrome對應(yīng)的驅(qū)動下載下來

*/

;使用的結(jié)果就是chrome最好用

Chrome := new Rufaydium("chromedriver.exe")

; Chrome.capabilities.setUserProfile("Default","C:\Users\xxx\AppData\Local\Google\Chrome\User Data") ?;設(shè)置配置文件,使用自己的配置

Page1:=Chrome.newsession()

Page1.Navigate("http://baidu.com") ? ;給網(wǎng)頁網(wǎng)址

Page1.CDP.WaitFOrLoad()

sleep 3000 ?;等待

Chrome.QuitAllSessions() ; closing all session one by one

Chrome.driver.exit() ; exitting driver

ExitApp

return

```


如果需要填寫網(wǎng)頁內(nèi)容,可以使用sendKey這個函數(shù),將element定位以后,將需要填寫的內(nèi)容send過去就可以了


```Autohotkey

Element := Page1.getElementsbyClassName("edit_lobo_cell")

? ? ? ? p=% Element.Count()

? ? ? ? If (p=2)

? ? ? ? ? ? {

? ? ? ? ? ? MsgBox,已經(jīng)登錄

? ? ? ? ? ? }

? ? ? ? Else

? ? ? ? ? ? {

? ? ? ? ? ? Element[2].SendKey("2xxs`n") ? ?;這里是我的賬號

? ? ? ? ? ? Element[3].SendKey("xxxx`n") ? ;這個元素對應(yīng)的是我的密碼

? ? ? ? ? ? }

? ? ? ? Sleep, 500

```


當(dāng)然,和chrome.ahk一樣,click、close函數(shù)也是支持的。更多內(nèi)容請移步官網(wǎng)自行學(xué)習(xí)或評論區(qū)討論。


https://github.com/Xeo786/Rufaydium-Webdriver


https://www.youtube.com/c/JoeGlines-Automator/videos


Autohotkey 網(wǎng)頁自動化瀏覽器驅(qū)動庫Rufaydium初步使用的評論 (共 條)

分享到微博請遵守國家法律
海盐县| 洛阳市| 五家渠市| 盈江县| 乳山市| 大埔县| 云阳县| 双流县| 简阳市| 三台县| 洞口县| 虎林市| 敖汉旗| 依安县| 濮阳县| 景德镇市| 台安县| 成安县| 馆陶县| 绥化市| 柘荣县| 西城区| 杨浦区| 城市| 城步| 黄平县| 娄底市| 大余县| 梅河口市| 安溪县| 耿马| 普安县| 资溪县| 藁城市| 佳木斯市| 汉川市| 循化| 金门县| 策勒县| 边坝县| 武夷山市|