当Selenium IDE将html转换为php时,为什么不创建简单的Selenese命令?

时间:2011-04-03 13:59:05

标签: php selenium phpunit selenium-ide

我正在使用:

  • Selenium IDE版本:1.0.10
  • PHPUnit 3.4.15

如果我使用Selenium IDE(firefox插件)创建一个非常简单的测试用例,在 Selenese表格行中有一个命令

waitForElementPresent | css=div

然后使用Selenium IDE > Options > Format > PHP功能将该代码转换为PHP。

我得到类似的东西:

<?php    
...    
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  ...
        for ($second = 0; ; $second++) {
                if ($second >= 60) $this->fail("timeout");
                try {
                        if ($this->isElementPresent("css=div")) break;
                } catch (Exception $e) {}
                sleep(1);
 ...
}

我的问题是:

为什么PHP代码以这种错综复杂的方式生成?

我可以将该命令转换为:

<?php    
...    
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  ...
        $this->waitForElementPresent("css=div");
 ...
}  

php的后一行将使用父类中的magic方法:PHPUnit_Extensions_SeleniumTestCase::__call($command, $arguments)

这种错综复杂的PHP输出背后的原因是什么?

  • 仅仅是为了让PHP更少依赖PHPUnit吗?
  • 是因为它是一个关于bug的补丁吗?
  • 是否因为它提供了更好的测试结果反馈?

我问,因为我是一个硒新手,我想知道为什么我不应该只用第二个代码示例(上面)的selenese风格来编写我的方法。

1 个答案:

答案 0 :(得分:1)

所有这些都是因为将出现的错误而写的:

$this->waitForElementPresent("css=div");

例如,selenium的代码在很多其他事情中都有超时......