2011-08-25 86 views
0

我有我已經把一個複雜的屏幕抓取腳本使用Selenium2,硒網絡驅動器和PHP綁定腳本,所以在這一切結束時,我有一個驅動Selenium的PHP腳本,它反過來提取一個URL,解析一些Javascript,填寫一個表單,等等,然後返回最終我所知道的HTML。它在我的本地計算機上運行良好(作爲開發和概念驗證環境)。使用第三方單元測試服務運行簡單的腳本硒

所以。

對於生產,我需要這個腳本每天自動運行三次。我試圖找出在我的服務器上設置所有東西是否會更好(意思是:弄清楚如何讓Linux for Firefox繼續使用,然後是Java,然後是Selenium2等等......對我來說不是微不足道的; 該死吉姆,我是一個編碼器,而不是一個系統管理員!),或者,如果我可以使用一個第三方硒檢測服務像Sauce Labs' OnDemand,或任何這些cloud-based Selenium services的。

那些第三方解決方案看起來好像全部設置爲「單元測試」,這完全是而不是我在做什麼。我不知道那些東西,或者使用PHPUnit,或者使用構建或其他方法進行測試。我只想運行我的簡單PHP腳本3x /天,並與Selenium交談,以驅動瀏覽器並進行屏幕抓取。

是那些第三方解決方案之一就是我試圖完成一個好主意,或者是他們矯枉過正/太遠離我(相對簡單的)目標是什麼?

回答

1

首先,我想讓你知道我使用Selenium與Ruby,所以我假設運行你的PHP腳本將啓動硒webdriver並運行你的測試...我只會解釋如何輕鬆地運行你的腳本3每天不需要成爲系統管理員。

Linux有所謂的cron這是你需要用什麼非常穩定和強大的命令。它可以讓你安排每天/每小時/任何事情發生的行動。

你想要做的第一件事就是用腳本轉到目錄。我將把腳本稱爲script.php。 第一件事情就是要確保你的腳本的最上面一行是:

#!/usr/bin/php 

在你將執行以下命令來使你的文件被系統訪問的目錄:

chmod +x script.php 

現在設置使用以下命令在cron作業:

crontab -e 

然後把你的工作:

00 4,12,20 * * * /home/sean/script.php 

00 - 意味着在00分鐘。

4,12,20 - 是幾小時(這是一個24小時制的時鐘。)

第一:* - 每天

第二:* - 每個月

第三:* - 星期

的每一天,所以這個腳本將運行的每一天,每一一週,每月四,中午和晚上八點。

很明顯,將目錄更改爲系統上的腳本,並將時間設置爲任何想要發生刮擦的時間。

我希望這有助於!

爲java/firefox-

首先-Appended的東西,因爲我使用Ruby :)藉此全部用一粒鹽

好吧獲取Java/Firefox的運行,你可能會想搶硒獨立。你可以抓住它here

然後運行硒服務器你剛纔:

java -jar selenium-server-standalone-2.5.0.jar 

您可以運行放在cron作業啓動獨立的服務器,然後關閉它在你的腳本文件。

+0

感謝Sean-- cron是朝着正確方向邁出的一步,如果我在服務器上完成所有這些工作,我一定會成爲解決方案的一部分,儘管我仍然不確定如何讓Firefox for Linux去,然後是Java,然後Selenium2等,但這是一個很好的起點。謝謝。 – Eric

+0

我想我明白了一點。讓我追加我的答案:) – Sean

+0

我剛剛發現另一個使用PHP的人可能會更好的堆棧溢出答案!祝你好運!看看這裏:http://stackoverflow.com/questions/7077090/using-selenium-grid-2-with-phpunit-tests – Sean