具體實現(xiàn)中出現(xiàn)的問題:
將錄制的腳本轉(zhuǎn)成PHPUNIT在服務器端運行總失敗。
開始要作如下工作:
1.在setUp()函數(shù)中添加語句:每次腳本運行,都將清空數(shù)據(jù)庫的語句
`/home/www/selenium-php/yuezhan/rebuilddb.sh`;注意:用倒斜杠,數(shù)字1左邊的鍵
//根據(jù)項目需要而修改;
2. 將默認的瀏覽器代碼修改:
將$this->setBrowser("*chrome");
改成$this->setBrowser("*firefox");
可以不用修改代碼的方法:
Selenium工具àOptionsàOptionsà選擇Formats選項卡à
選擇PHP-PHPUNITà將Environment里的瀏覽器改成firefox即可,
這樣子錄制的腳本轉(zhuǎn)化成PHP后,也不用修改此部分代碼了。
3.在第2點的基礎上,在上面添加兩句代碼:
$this->setHost("192.168.8.24");
$this->setPort(4445); //此句可以不加,根據(jù)自己服務器端口而定
4.錄制的腳本中如有上傳圖片的路徑。
也要根據(jù)服務器所在的環(huán)境作修改。如在同一環(huán)境下可不作修改。不在同一環(huán)境下,要將圖片路徑修改成服務器環(huán)境中圖片所在的路徑下。
5.錄制的腳本一定要從登錄開始錄制。在沒有解決COOIKE之前,必須這么做。
運行腳本時,
常見問題1:報錯:ERROR: There was an unexpected Alert! [ajax錯誤].
錯誤原因:AJAX錯誤,沒有找到ALERT提示的框架,因而報異常錯誤
解決方法一:$this->click("css=input[type=submit]");這是一個“下一步”按鈕。
進入的頁面中,有AJAX。
可以此句前面添加:setSpeed(1000)讓其執(zhí)行速度變慢1秒。
具體php代碼:
$this->setSpeed("1000") //從下一句開始,執(zhí)行速度放慢
$this->click("css=input[type=submit]");
$this->waitForPageToLoad("30000");
$this->type("name=player[player1][name]", "元一");
$this->setSpeed("0") //恢復到正常執(zhí)行速度