亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        借助WebDriver技術(shù)實(shí)現(xiàn)圖書館Web業(yè)務(wù)操作自動(dòng)化

        2018-03-18 19:59:41候志江
        新世紀(jì)圖書館 2018年2期

        候志江

        摘 要 論文以圖書館VPN賬號(hào)的自動(dòng)審核為例,介紹了WebDriver在圖書館業(yè)務(wù)操作自動(dòng)化中的應(yīng)用。實(shí)踐證明,通過引入WebDriver自動(dòng)化技術(shù)不僅能夠大幅提高工作效率,還提升了用戶體驗(yàn)和滿意度。論文探討了該技術(shù)在圖書館的廣闊應(yīng)用前景,并提供了Github案例全部的演示視頻以及完整的源代碼。

        關(guān)鍵詞 賬號(hào)自動(dòng)審核 WebDriver 圖書館自動(dòng)化

        分類號(hào) G250.7

        DOI 10.16810/j.cnki.1672-514X.2018.02.015

        Using WebDriver to Implement the Automation of Business in Library: Taking Auto-verification of VPN Accounts for Example

        Hou Zhijiang

        Abstract Taking the automatic verification of VPN account as an example, this paper introduces the application of WebDriver in the automation of library business. In practice, it has proved that WebDriver raises the efficiency greatly and improves users experience and satisfaction. Then, this paper discusses some promising use case of this technology in library, and provides both the demo video and all related source code of Github.

        Keywords Account auto-verification. WebDriver. Automation of library.

        0 背景

        為了方便師生在校外訪問圖書館電子資源,筆者所在圖書館使用了某VPN遠(yuǎn)程訪問系統(tǒng)。出于安全考慮,圖書館需要驗(yàn)證用戶的真實(shí)身份,為此,圖書館安排專職人員進(jìn)行賬號(hào)申請(qǐng)者的身份驗(yàn)證。這項(xiàng)業(yè)務(wù)的流程是,先由用戶自助注冊(cè)申請(qǐng)賬號(hào),然后等待圖書館館員審核,審核通過后賬號(hào)即可生效使用。這一流程看似沒有問題,但隨著時(shí)間的推移,時(shí)效性問題逐步凸顯出來??紤]到周末和節(jié)假日,圖書館給讀者的承諾是三天內(nèi)完成賬號(hào)審核,但在實(shí)際中要求專職館員加大賬號(hào)審核處理頻次,每天務(wù)必處理三次。而最近的一次讀者調(diào)查結(jié)果顯示,這項(xiàng)服務(wù)是讀者對(duì)圖書館服務(wù)最不滿意的一項(xiàng)服務(wù),理由是等待審核的時(shí)間太長(zhǎng)了,尤其是遇上周末,一等就得兩三天。進(jìn)一步調(diào)查訪談發(fā)現(xiàn),原來很多讀者想到使用校外訪問VPN系統(tǒng)時(shí),多數(shù)是在一些比較著急的情況下,例如科研中突然需要用到一篇文獻(xiàn),或者在家中突然有一個(gè)思路想要驗(yàn)證等等,所以漫長(zhǎng)的等待讓用戶覺得難以接受。要解決這個(gè)問題,光靠加大人工審核頻次是不行的。為了提高用戶滿意度,必須依靠自動(dòng)化技術(shù)。沿著這一思路,筆者開始探尋一種能夠?qū)崿F(xiàn)Web操作自動(dòng)化的技術(shù),用機(jī)器來彌補(bǔ)人工的不足。最終,筆者發(fā)現(xiàn)WebDriver自動(dòng)化技術(shù),能成功完成VPN賬號(hào)自動(dòng)審核任務(wù),達(dá)到良好效果。

        1 WebDriver簡(jiǎn)介

        WebDriver全稱Selenium WebDriver,是知名軟件自動(dòng)化測(cè)試框架Selenium[1]的最新版本,代表了目前最先進(jìn)的現(xiàn)代Web程序自動(dòng)化測(cè)試技術(shù)。在本研究中,筆者對(duì)軟件自動(dòng)化測(cè)試領(lǐng)域的技術(shù)加以借鑒和整合,將其應(yīng)用到圖書館Web業(yè)務(wù)操作的自動(dòng)化中來。

        WebDriver的工作原理如圖1所示。WebDriver的核心是一組與瀏覽器交互通訊的接口和協(xié)議,使得外部程序能夠通過這一標(biāo)準(zhǔn)編程接口與任何遵循該協(xié)議的瀏覽器直接進(jìn)行交互,從而繞過鼠標(biāo)、鍵盤等用戶交互設(shè)備,直接向?yàn)g覽器發(fā)出各種操作指令。目前大多數(shù)主流的瀏覽器例如IE、FireFox、Chrome等均支持WebDriver,各自都提供有WebDriver驅(qū)動(dòng)程序。

        圖1中的箭頭方向描述了WebDriver程序工作的流程。以點(diǎn)擊網(wǎng)頁(yè)中的按鈕為例,可以更加清楚地描述其工作原理:用戶在Python程序中指出要執(zhí)行點(diǎn)擊動(dòng)作的按鈕及其標(biāo)識(shí)參數(shù),SDK(Software Development Kit)軟件包將高級(jí)語言翻譯成底層WebDriver協(xié)議的通訊指令,通知給瀏覽器的WebDriver驅(qū)動(dòng)程序(例如Firefox驅(qū)動(dòng)程序),驅(qū)動(dòng)程序再指示Firefox瀏覽器執(zhí)行命令,最后,由瀏覽器在內(nèi)核中對(duì)相應(yīng)的按鈕進(jìn)行點(diǎn)擊操作,最終的效果與用戶使用鼠標(biāo)在頁(yè)面上點(diǎn)擊該按鈕的效果完全相同。除Python語言外,WebDriver官方還提供了Java、Ruby等多種編程語言的軟件開發(fā)工具包,為用戶提供了更加簡(jiǎn)單方便的面向?qū)ο蟮木幊探涌赱2]。

        從文獻(xiàn)來看,過去有研究人員嘗試使用操作系統(tǒng)底層編程[3]和鼠標(biāo)鍵盤操作記錄器(例如按鍵精靈[4])兩種方法來實(shí)現(xiàn)Web操作自動(dòng)化,但這兩種方法由于通用性和兼容性較差,一直難以得到廣泛的推廣和應(yīng)用。與過去Web業(yè)務(wù)自動(dòng)化技術(shù)相比,WebDriver具有較為顯著的優(yōu)勢(shì),具體為:(1) 功能豐富而強(qiáng)大。WebDriver的各項(xiàng)功能都是瀏覽器廠商原生支持并實(shí)現(xiàn)的,所以幾乎所有的用戶交互操作,例如鼠標(biāo)單擊、雙擊、滾動(dòng)、拖拽、鍵盤輸入等都可以通過WebDriver接口來完成。而且,WebDriver還可以與外部編程語言無縫結(jié)合,可以在頁(yè)面環(huán)境中執(zhí)行JavaScript腳本,使得其功能更加靈活強(qiáng)大,基本可實(shí)現(xiàn)所有常見的Web網(wǎng)頁(yè)交互操作。(2) 學(xué)習(xí)曲線平滑。WebDriver官方提供了多種便捷的軟件開發(fā)工具包,用戶可以任選一種自己熟悉的語言進(jìn)行開發(fā)。經(jīng)過封裝的編程接口與自然語言十分接近,初學(xué)者可以快速上手。(3) 技術(shù)方案成熟,穩(wěn)定可靠。WebDriver被全球軟件企業(yè)廣泛應(yīng)用,在自動(dòng)化軟件測(cè)試領(lǐng)域頗為知名,其可靠性得到了充分的驗(yàn)證,有著豐富的技術(shù)資料和幫助文檔。

        2 實(shí)現(xiàn)方案描述

        在本研究中,筆者使用Python語言進(jìn)行編程開發(fā),通過FirefoxDriver驅(qū)動(dòng)Firefox瀏覽器執(zhí)行VPN賬號(hào)審核操作。賬號(hào)自動(dòng)審核程序的基本流程圖如圖2所示。圖中虛線框包圍的部分表示通過調(diào)用WebDriver接口完成的功能,框外部分則是使用Python代碼自行實(shí)現(xiàn)的程序業(yè)務(wù)邏輯。

        從圖2中可以看出,程序的主框架是一個(gè)大循環(huán)。通過該循環(huán),程序每隔1分鐘(間隔時(shí)間值可自定義)登錄一次后臺(tái)賬號(hào)管理系統(tǒng),檢查是否有待審核賬號(hào)。如果有,則提取注冊(cè)信息,然后根據(jù)自定義的審核邏輯進(jìn)行判別,決定是否通過審核,通過則調(diào)用WebDriver模擬點(diǎn)擊“審核通過”按鈕,沒有通過則模擬點(diǎn)擊“拒絕申請(qǐng)”按鈕。在此過程中,WebDriver的核心操作主要包括“讀取用戶注冊(cè)信息”和“模擬點(diǎn)擊操作按鈕”兩個(gè)。筆者在下文將以這兩個(gè)核心操作為例,介紹程序的關(guān)鍵實(shí)現(xiàn)原理。

        (1) 讀取用戶注冊(cè)信息。以讀取注冊(cè)用戶的姓名為例。首先需要通過分析網(wǎng)頁(yè)結(jié)構(gòu)布局來定位“姓名”所在的網(wǎng)頁(yè)元素。WebDriver提供了多種方式來定位網(wǎng)頁(yè)元素,這里以XPath方式為例。XPath是一種用來描述HTML文檔中元素位置的語言,HTML是一種樹形結(jié)構(gòu)的文檔,而XPath類似于描述元素“地址”的語言。例如“姓名”字段元素的XPath位置為“html/body/div[2]/div/form/table/tbody/tr[1]/td[2]”,則可以通過以下Python程序代碼來獲取姓名的字符串值。

        # 創(chuàng)建一個(gè)WebDriver對(duì)象

        driver = webdriver.Firefox();

        # 打開操作頁(yè)面

        driver.get(siteURL);

        # 根據(jù)元素的XPath定位元素對(duì)象

        nameXPath=“html/body/div[2]/div/form/table/tbody/tr[1]/td[2]”;

        nameElement=driver.find_element_by_xpath (nameXPath);

        #通過元素對(duì)象的text屬性,讀出“姓名”字段值

        name = nameElement.text;

        通過類似的方法,即可獲得注冊(cè)用戶的各種信息,例如借閱證號(hào)碼、學(xué)院、用戶類型等其它信息。這些信息將作為審核邏輯的輸入?yún)?shù)。審核邏輯與WebDriver的使用無關(guān),是用戶根據(jù)業(yè)務(wù)規(guī)則自定義的函數(shù),只要基于這些輸入信息,做出是否通過審核的判斷決策即可。

        (2) 模擬點(diǎn)擊操作按鈕。正如讀取注冊(cè)信息所示,WebDriver在執(zhí)行交互操作時(shí)基本都遵循先定位元素,后調(diào)用操作函數(shù)的步驟。點(diǎn)擊“審核通過”按鈕,也需要先定位該按鈕在頁(yè)面中的位置。除了使用XPath外,WebDriver還支持通過id標(biāo)識(shí)符、鏈接文字、標(biāo)簽名、CSS選擇器等多種方式來確定元素的位置,具體可查看WebDriver手冊(cè)文檔[2]。例如,可以通過鏈接文字“審核通過”來查找定位該按鈕,然后調(diào)用單擊click()方法,來實(shí)現(xiàn)“審核通過”按鈕的模擬點(diǎn)擊。具體Python源代碼如下:

        #創(chuàng)建一個(gè)WebDriver對(duì)象

        driver = webdriver.Firefox();

        #打開操作頁(yè)面

        driver.get(siteURL);

        # 通過按鈕上的鏈接文字來定位按鈕元素

        passButton=driver.find_element_by_link_text (“審核通過”) ;

        #調(diào)用元素對(duì)象的click()函數(shù),模擬完成點(diǎn)擊操作。

        passButton.click();

        以上兩個(gè)基本操作涵蓋了WebDriver的核心功能,也正是賬號(hào)自動(dòng)審核程序的關(guān)鍵部分。除此之外,還有一個(gè)細(xì)節(jié)的地方值得特別說明并引起讀者注意:WebDriver代碼采用異步執(zhí)行方式,在執(zhí)行下一條語句時(shí),前一條語句并不一定已經(jīng)完成并產(chǎn)生結(jié)果。所以在打開新頁(yè)面,或者代碼操作引起頁(yè)面變化時(shí),需要酌情進(jìn)行一定時(shí)間的等待,通常調(diào)用Python中的sleep語句將線程掛起若干秒,等待頁(yè)面完成刷新,即可解決這一問題。

        3 實(shí)踐效果及前景

        筆者使用上述方案,實(shí)現(xiàn)了圖書館VPN賬號(hào)的自動(dòng)審核,程序運(yùn)行的界面可參考筆者提供的程序演示視頻[5]。

        在程序投入使用后,收到了較好的效果。首先,大幅提高了審核效率,賬號(hào)審核的最長(zhǎng)時(shí)滯由過去的三天縮短到一分鐘,而且7*24小時(shí)全天候無節(jié)假日實(shí)時(shí)自動(dòng)審核,極大地提升了用戶體驗(yàn)。在2015年12月到2016年6月程序試運(yùn)行的這段時(shí)間里,統(tǒng)計(jì)數(shù)據(jù)顯示,98%的注冊(cè)賬號(hào)能夠通過自動(dòng)審核,達(dá)到了賬號(hào)實(shí)時(shí)生效的效果。與此同時(shí),節(jié)省了大量人力,減輕了館員的工作負(fù)擔(dān),館員只需定期處理少量未通過自動(dòng)審核的用戶,提醒他們注意修改注冊(cè)資料即可,從而使館員能夠抽出時(shí)間來從事其它更深層次的工作??傊琕PN賬號(hào)審核的自動(dòng)化,不僅得到了師生用戶的一致好評(píng),還得到了館員的歡迎和贊許。

        這項(xiàng)自動(dòng)化技術(shù)具有普適性,在Web業(yè)務(wù)日益普及的今天,WebDriver在圖書館潛在的應(yīng)用場(chǎng)景也越來越多。例如,可以借助WebDriver進(jìn)行文獻(xiàn)自動(dòng)傳遞、進(jìn)行電子資源可用性的自動(dòng)監(jiān)測(cè)、學(xué)科動(dòng)態(tài)新聞的自動(dòng)跟蹤和抓取等等?,F(xiàn)階段,我國(guó)圖書館的業(yè)務(wù)有較大的相似性和類同性,試想如果能夠進(jìn)一步建立一個(gè)全國(guó)范圍的WebDriver自動(dòng)化腳本共享交流平臺(tái),將極大地提高國(guó)內(nèi)圖書館的工作效率和服務(wù)質(zhì)量。

        當(dāng)前的圖書館有不少類似的需要人工去做的重復(fù)性業(yè)務(wù)工作,效率和用戶體驗(yàn)都存在較大的提升空間。本文旨在將WebDriver自動(dòng)化方案介紹給國(guó)內(nèi)廣大同仁,期待能引起廣大圖書館技術(shù)人員對(duì)WebDriver自動(dòng)化技術(shù)的關(guān)注和重視,同時(shí)也希望大家可以舉一反三,思考并嘗試實(shí)現(xiàn)日常業(yè)務(wù)的自動(dòng)化,進(jìn)一步推進(jìn)圖書館服務(wù)的優(yōu)化和升級(jí)。為此,筆者將本課題的源代碼全部放在Github網(wǎng)站開放下載[6],希望能夠?yàn)榇蠹易灾鏖_發(fā)提供一個(gè)基礎(chǔ)框架。

        參考文獻(xiàn):

        Selenium Project. Selenium WebDriver[EB/OL].[2015-06-12].http://www.seleniumhq.org/projects/webdriver/.

        WebDriver Python Bindings. API Documentation[EB/OL].[2015-07-10].http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html.

        朱玉強(qiáng).圖書館電子資源可否瀏覽及下載監(jiān)測(cè)程序設(shè)計(jì)[J].現(xiàn)代圖書情報(bào)技術(shù),2013(11):86-90.

        按鍵精靈.鼠標(biāo)鍵盤模擬器[EB/OL].[2015-7-12].http://www.anjian.com/.

        侯志江.圖書館賬號(hào)自動(dòng)審核演示視頻[EB/OL].

        [2015-09-21].http://v.youku.com/v_show/id_XMTM0MTE5MDEyMA==.html.

        Github. WebDriver開發(fā)指引[EB/OL].[2015-09-21].

        https://github.com/tjut/auto-audit.

        老鲁夜夜老鲁| 99色网站| 久久爱91精品国产一区| 一区二区三区国产精品麻豆| 精品含羞草免费视频观看| 成人av鲁丝片一区二区免费| 韩国精品一区二区三区无码视频| 青青草视频华人绿色在线| 在线视频亚洲一区二区三区| 激情久久黄色免费网站| 美女内射毛片在线看免费人动物| 伊人久久大香线蕉av一区| 综合91在线精品| 国产在线精彩自拍视频| gg55gg国产成人影院| 美女露内裤扒开腿让男人桶无遮挡| 欧美野外疯狂做受xxxx高潮| 人妻无码AⅤ不卡中文字幕| av在线男人的免费天堂| 国产91色综合久久高清| 国产免费一区二区三区免费视频 | 亚洲一区av在线观看| 亚洲日韩精品欧美一区二区 | 婷婷色综合成人成人网小说| 日本看片一区二区三区| 水蜜桃在线精品视频网| 久久99国产综合精品| 日韩好片一区二区在线看| 日韩无码尤物视频| 中文字幕日本av网站| 性做久久久久久免费观看| 欧妇女乱妇女乱视频| 亚洲AV秘 无码一区二区三| 一区二区三区一片黄理论片| 亚洲日韩成人无码| 中文字幕一区二区三区人妻少妇| 亚洲—本道中文字幕久久66| 亚洲国内精品一区二区在线| 水蜜桃在线观看一区二区| 男人激烈吮乳吃奶视频免费| 免费黄色福利|