具体实现中出现的问题:
将录制的脚本转成PHPUNIT在服务器端运行总失败。
开始要作如下工作:
1.在setUp()函数中添加语句:每次脚本运行,都将清空数据库的语句
`/home/www/selenium-php/yuezhan/rebuilddb.sh`;注意:用倒斜杠,数字1左边的键
//根据项目需要而修改;
2. 将默认的浏览器代码修改:
将$this->setBrowser("*chrome");
改成$this->setBrowser("*firefox");
可以不用修改代码的方法:
Selenium工具àOptionsàOptionsà选择Formats选项卡à
选择PHP-PHPUNITà将Environment里的浏览器改成firefox即可,
这样子录制的脚本转化成PHP后,也不用修改此部分代码了。
3.在第2点的基础上,在上面添加两句代码:
$this->setHost("192.168.8.24");
$this->setPort(4445); //此句可以不加,根据自己服务器端口而定
4.录制的脚本中如有上传图片的路径。
也要根据服务器所在的环境作修改。如在同一环境下可不作修改。不在同一环境下,要将图片路径修改成服务器环境中图片所在的路径下。
5.录制的脚本一定要从登录开始录制。在没有解决COOIKE之前,必须这么做。
运行脚本时,
常见问题1:报错:ERROR: There was an unexpected Alert! [ajax错误].
错误原因:AJAX错误,没有找到ALERT提示的框架,因而报异常错误
解决方法一:$this->click("css=input[type=submit]");这是一个“下一步”按钮。
进入的页面中,有AJAX。
可以此句前面添加:setSpeed(1000)让其执行速度变慢1秒。
具体php代码:
$this->setSpeed("1000") //从下一句开始,执行速度放慢
$this->click("css=input[type=submit]");
$this->waitForPageToLoad("30000");
$this->type("name=player[player1][name]", "元一");
$this->setSpeed("0") //恢复到正常执行速度