Я использую:
- Версия 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 этого второго примера кода (выше).