摘要:傳統(tǒng)的無法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的來突破限制,編寫起來較為復(fù)雜。直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持以下方式進(jìn)行選擇元素各種庫(kù)對(duì)情況的檢測(cè)方法
傳統(tǒng)的 cURL 無法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的 http header 來突破限制,編寫起來較為復(fù)雜。
Selenium簡(jiǎn)介:Selenium 是一個(gè)用于Web應(yīng)用程序測(cè)試的工具(用處也不僅僅是測(cè)試)。
Selenium 直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持較多的瀏覽器。
Selenium IDE:Firefox插件,有錄制腳本的功能。支持自動(dòng)錄制動(dòng)作和自動(dòng)生成其他語言的自動(dòng)化腳本。
Selenium Remote Control (RC) :支持多種平臺(tái)(Windows,Linux)和多瀏覽器(IE,F(xiàn)irefox,Opera,Safari,Chrome),可以用多種語言(Java,Ruby,Python,Perl,PHP,C#)編寫用例。
Selenium Grid :允許Selenium-RC 針對(duì)規(guī)模龐大的測(cè)試案例集或者需要在不同環(huán)境中運(yùn)行的測(cè)試案例集進(jìn)行擴(kuò)展。
1.前往項(xiàng)目主頁(yè):SeleniumHQ 下載
Selenium Server (formerly the Selenium RC Server)
Third Party Browser Drivers NOT DEVELOPED by seleniumhq
(選擇chrome的driver)
Third Party Language Bindings NOT DEVELOPED by seleniumhq
(選擇PHP by Adam Goucher (SeHQ recommended php client))
2.打開 selenium
java -jar path_to_selenium.jar [-timeout 0] [-Dwebdriver.server.session.timeout=0] -Dwebdriver.chrome.driver="path_to_chrome_driver" -browser [-timeout=0] [-browserTimeout=0] browserName=chrome,[timeout=0]
如需長(zhǎng)時(shí)間運(yùn)行請(qǐng)酌情設(shè)置各 "[ ]" 中的超時(shí)時(shí)間
3.PHP代碼
execute(array("script" => "return (document.readyState != "complete")", "args" => array()))); } //該函數(shù)會(huì)把腳本掛起直到等待到Ajax結(jié)束 require_once "webdriver/PHPWebDriver/__init__.php"; // 引入 selenium 的PHP封裝函數(shù)庫(kù) // 下載地址:https://github.com/Element-34/php-webdriver // 文檔中有各種操作瀏覽器方法,如獲取所有cookie等 $wd_host = "http://127.0.0.1:4444/wd/hub"; $web_driver = new PHPWebDriver_WebDriver($wd_host); $session = $web_driver->session("chrome"); //設(shè)置超時(shí)時(shí)間 $session->implicitlyWait(5); $session->setScriptTimeout(5); $session->setPageLoadTimeout(15); //打開連接 $session->open("http://login.m.taobao.com/login.htm?tpl_redirect_url=http://m.taobao.com"); //輸入驗(yàn)證碼用,如果需要的話 sleep(5); //請(qǐng)?jiān)O(shè)置好帳號(hào)密碼 $session->element("css selector", "input[name=TPL_username]")->value(array("value" => str_split("your_username"))); $session->element("css selector", "input[name=TPL_password]")->value(array("value" => str_split("your_password"))); //模擬點(diǎn)擊登入按鈕 $elements = $session->element("css selector", ".c-btn-oran-big")->click(); //打開 m.taobao.com,此時(shí)已獲取到cookie $session->open("http://m.taobao.com/"); //等待ajax加載完畢 waitForAjax(); $elements = $session->element("css selector", "body")->text(); //獲得了登入后ajax執(zhí)行完畢時(shí)的頁(yè)面內(nèi)容 ?>
之后便可以按需對(duì) $session 實(shí)例進(jìn)行 element 方法的各種操作。
支持以下方式進(jìn)行選擇元素
id
xpath
link text
partial link text
name
tag name
class name
css selector
jQuery: "jQuery.active"
Prototype: "Ajax.activeRequestCount"
Dojo: "dojo.io.XMLHTTPTransport.inFlight.length"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/20603.html
摘要:傳統(tǒng)的無法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的來突破限制,編寫起來較為復(fù)雜。直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持以下方式進(jìn)行選擇元素各種庫(kù)對(duì)情況的檢測(cè)方法 傳統(tǒng)的 cURL 無法執(zhí)行頁(yè)面中的瀏覽器腳本,并且在抓取一些對(duì)爬蟲有限制的網(wǎng)頁(yè)時(shí),往往要設(shè)定詳細(xì)的 http header 來突破限制,編寫起來較為復(fù)雜。 Selenium簡(jiǎn)介: ...
摘要:概述是由有贊開發(fā)的自動(dòng)化工具,并以此實(shí)現(xiàn)了端和端的核心業(yè)務(wù)的自動(dòng)化。旨在簡(jiǎn)化開源工具提供的接口,方便自動(dòng)化測(cè)試用例的設(shè)計(jì)。元素定位自動(dòng)化用例其實(shí)可以分成兩部分,定位元素調(diào)用接口操作該元素。一臺(tái)用于跑自動(dòng)化用例的服務(wù)器。 概述 Bee 是由有贊 QA 開發(fā)的 UI 自動(dòng)化工具,并以此實(shí)現(xiàn)了 web 端和 wap 端的核心業(yè)務(wù)的自動(dòng)化。旨在簡(jiǎn)化開源工具提供的接口,方便 UI 自動(dòng)化測(cè)試用例...
摘要:目標(biāo)通過模擬瀏覽器抓取淘寶商品美食信息,并存儲(chǔ)到數(shù)據(jù)庫(kù)中。流程框架淘寶頁(yè)面比較復(fù)雜,含有各種請(qǐng)求參數(shù)和加密參數(shù),如果直接請(qǐng)求或者分析將會(huì)非常繁瑣。 目標(biāo) 通過Selenium模擬瀏覽器抓取淘寶商品美食信息,并存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù)中。 流程框架 淘寶頁(yè)面比較復(fù)雜,含有各種請(qǐng)求參數(shù)和加密參數(shù),如果直接請(qǐng)求或者分析Ajax將會(huì)非常繁瑣。Selenium是一個(gè)自動(dòng)化測(cè)試工具,可以驅(qū)動(dòng)瀏覽...
摘要:難在哪里根據(jù)上面的標(biāo)簽需要定位最后一行標(biāo)簽,以下列出了四種方式,定位的方式多樣并不唯一,使用時(shí)根據(jù)情況進(jìn)行解析即可。加入每日一練我們使用并指明標(biāo)簽內(nèi)全部文本即可定位。 ...
文章目錄 selenium 簡(jiǎn)介selenium安裝安裝瀏覽器驅(qū)動(dòng)確定瀏覽器版本下載驅(qū)動(dòng) 定位頁(yè)面元素打開指定頁(yè)面id 定位name 定位class 定位tag 定位xpath 定位css 定位link 定位partial_link 定位 瀏覽器控制修改瀏覽器窗口大小瀏覽器前進(jìn)&后退瀏覽器刷新瀏覽器窗口切換常見操作 鼠標(biāo)控制單擊左鍵單擊右鍵雙擊拖動(dòng)鼠標(biāo)懸停 鍵盤控制 seleni...
閱讀 2069·2021-09-22 15:43
閱讀 8734·2021-09-22 15:07
閱讀 1086·2021-09-03 10:28
閱讀 2060·2021-08-19 10:57
閱讀 1071·2020-01-08 12:18
閱讀 2978·2019-08-29 15:09
閱讀 1530·2019-08-29 14:05
閱讀 1645·2019-08-29 13:57