我在Firefox上安装了Selenium IDE,并设法记录和播放各种网络导航序列。我需要的是通过PHP自动完成所有操作,即运行一个PHP脚本,它获取最终页面的HTML源(即导航序列结束时)。 在Selenium中有一个导出到PHP的选项,所以我得到类似的东西:
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
function setUp()
{
$this->setBrowser("*chrome");
$this->setBrowserUrl("http://www.example.com/");
}
function testMyTestCase()
{
$this->open("/");
$this->click("link=24");
$this->waitForPageToLoad("30000");
$this->click("link=Test2");
$this->waitForPageToLoad("30000");
$this->click("//td[4]/a/img");
$this->waitForPageToLoad("30000");
$this->type("username", "user");
$this->type("password", "pass");
$this->click("//input[@name='login']");
$this->waitForPageToLoad("30000");
}
}
虽然我可以在我的PHP代码中使用它,但它似乎没有做任何事情(因为它只是一个类定义我猜)。我如何获得最后一个源页面?请注意,我不希望我的PHP代码在屏幕上进行导航,而是希望在PHP中进一步处理最终的源代码。
答案 0 :(得分:0)
导出到PHP选项将以一种使用Selenium RC PHP驱动程序运行(稍微有点额外工作)的形式导出您的测试。它不会导出您正在查看的页面。
开箱即用的Selenium IDE不允许您获取页面的最终来源并对其执行任何操作。如果我必须完成这样的事情,我会
重新考虑我的方法
如果我决定使用Selenium IDE进行此操作,我会考虑使用user-extension.js机制编写一个新的Selenium操作,该操作将使用Javascript来获取页面的源,并且然后将其发布到我选择的网址
在PHP页面上方创建用于执行其余处理的URL。
这有点hacky,需要对user-extension.js进行一些研究(并不适合所有人),并且是必须脆弱的额外定制工作。 (见选项#1)
答案 1 :(得分:0)
使这更容易的一些事情。
1)当需要通过php进行操作时,它需要连接到服务器。
2)所以去下载服务器(selenium-rc)。通过以下方式运行:java -jar selenium-server.jar通过java -jar selenium-server.jar检查参数 - ? (我认为!)。此时重要的一个是日志文件位置。
3)服务器将在localhost和端口4444上启动(上面生成的代码的默认值是预期的)。
4)尝试连接上面的php代码。检查您的selenium-server日志。它应该包含尝试连接的详细信息。