Когда Selenium IDE преобразует html в php, почему он не создает простые команды Selenese? - PullRequest
2 голосов
/ 03 апреля 2011

Я использую:

  • Версия 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 будет использовать магический метод в родительском классе: PHPUnit_Extensions_SeleniumTestCase::__call($command, $arguments)

В чем причина такого запутанного PHPвывод?

  • Это просто для того, чтобы сделать PHP менее зависимым от PHPUnit?
  • Это потому, что это исправление ошибки?
  • Это потому, что этодает лучший результат теста обратной связи?

Я спрашиваю, потому что я новичок селен и мне интересно, есть ли какая-либо причина, почемуЯ не должен просто писать свои методы в стиле selenese этого второго примера кода (выше).

1 Ответ

1 голос
/ 03 апреля 2011

Все они написаны из-за ошибок, которые могут возникнуть в:

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

Например, у кода селена есть тайм-аут среди множества других вещей ...

...