摘要:傳統(tǒng)的無法執(zhí)行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網(wǎng)頁時,往往要設(shè)定詳細(xì)的來突破限制,編寫起來較為復(fù)雜。直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持以下方式進(jìn)行選擇元素各種庫對情況的檢測方法
傳統(tǒng)的 cURL 無法執(zhí)行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網(wǎng)頁時,往往要設(shè)定詳細(xì)的 http header 來突破限制,編寫起來較為復(fù)雜。
Selenium簡介:Selenium 是一個用于Web應(yīng)用程序測試的工具(用處也不僅僅是測試)。
Selenium 直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持較多的瀏覽器。
Selenium IDE:Firefox插件,有錄制腳本的功能。支持自動錄制動作和自動生成其他語言的自動化腳本。
Selenium Remote Control (RC) :支持多種平臺(Windows,Linux)和多瀏覽器(IE,F(xiàn)irefox,Opera,Safari,Chrome),可以用多種語言(Java,Ruby,Python,Perl,PHP,C#)編寫用例。
Selenium Grid :允許Selenium-RC 針對規(guī)模龐大的測試案例集或者需要在不同環(huán)境中運(yùn)行的測試案例集進(jìn)行擴(kuò)展。
1.前往項(xiàng)目主頁: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]
如需長時間運(yùn)行請酌情設(shè)置各 "[ ]" 中的超時時間
3.PHP代碼
execute(array("script" => "return (document.readyState != "complete")", "args" => array()))); } //該函數(shù)會把腳本掛起直到等待到Ajax結(jié)束 require_once "webdriver/PHPWebDriver/__init__.php"; // 引入 selenium 的PHP封裝函數(shù)庫 // 下載地址: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è)置超時時間 $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); //請?jiān)O(shè)置好帳號密碼 $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,此時已獲取到cookie $session->open("http://m.taobao.com/"); //等待ajax加載完畢 waitForAjax(); $elements = $session->element("css selector", "body")->text(); //獲得了登入后ajax執(zhí)行完畢時的頁面內(nèi)容 ?>
之后便可以按需對 $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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20603.html
摘要:傳統(tǒng)的無法執(zhí)行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網(wǎng)頁時,往往要設(shè)定詳細(xì)的來突破限制,編寫起來較為復(fù)雜。直接使用瀏覽器運(yùn)行,像真正的用戶在操作。支持以下方式進(jìn)行選擇元素各種庫對情況的檢測方法 傳統(tǒng)的 cURL 無法執(zhí)行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網(wǎng)頁時,往往要設(shè)定詳細(xì)的 http header 來突破限制,編寫起來較為復(fù)雜。 Selenium簡介: ...
摘要:概述是由有贊開發(fā)的自動化工具,并以此實(shí)現(xiàn)了端和端的核心業(yè)務(wù)的自動化。旨在簡化開源工具提供的接口,方便自動化測試用例的設(shè)計(jì)。元素定位自動化用例其實(shí)可以分成兩部分,定位元素調(diào)用接口操作該元素。一臺用于跑自動化用例的服務(wù)器。 概述 Bee 是由有贊 QA 開發(fā)的 UI 自動化工具,并以此實(shí)現(xiàn)了 web 端和 wap 端的核心業(yè)務(wù)的自動化。旨在簡化開源工具提供的接口,方便 UI 自動化測試用例...
摘要:目標(biāo)通過模擬瀏覽器抓取淘寶商品美食信息,并存儲到數(shù)據(jù)庫中。流程框架淘寶頁面比較復(fù)雜,含有各種請求參數(shù)和加密參數(shù),如果直接請求或者分析將會非常繁瑣。 目標(biāo) 通過Selenium模擬瀏覽器抓取淘寶商品美食信息,并存儲到MongoDB數(shù)據(jù)庫中。 流程框架 淘寶頁面比較復(fù)雜,含有各種請求參數(shù)和加密參數(shù),如果直接請求或者分析Ajax將會非常繁瑣。Selenium是一個自動化測試工具,可以驅(qū)動瀏覽...
摘要:難在哪里根據(jù)上面的標(biāo)簽需要定位最后一行標(biāo)簽,以下列出了四種方式,定位的方式多樣并不唯一,使用時根據(jù)情況進(jìn)行解析即可。加入每日一練我們使用并指明標(biāo)簽內(nèi)全部文本即可定位。 ...
文章目錄 selenium 簡介selenium安裝安裝瀏覽器驅(qū)動確定瀏覽器版本下載驅(qū)動 定位頁面元素打開指定頁面id 定位name 定位class 定位tag 定位xpath 定位css 定位link 定位partial_link 定位 瀏覽器控制修改瀏覽器窗口大小瀏覽器前進(jìn)&后退瀏覽器刷新瀏覽器窗口切換常見操作 鼠標(biāo)控制單擊左鍵單擊右鍵雙擊拖動鼠標(biāo)懸停 鍵盤控制 seleni...
閱讀 2064·2021-09-22 15:43
閱讀 8623·2021-09-22 15:07
閱讀 1078·2021-09-03 10:28
閱讀 2052·2021-08-19 10:57
閱讀 1062·2020-01-08 12:18
閱讀 2972·2019-08-29 15:09
閱讀 1521·2019-08-29 14:05
閱讀 1640·2019-08-29 13:57