2013-10-14 4 views
5

Каждый раз, когда я попытка использовать один из основных утверждений PHPUnit Селен, тесты ошибок из и отображает это сообщение:Невозможно вызвать команду с несколькими аргументами метода

Exception: You cannot call a command with multiple method arguments. 

На http://phpunit.de/manual/3.7/en/selenium.html, это показывает использование быть :

void assertElementValueEquals(string $locator, string $text) 

быть, когда я называю его

$this->assertElementValueEquals('id=date_1_formatted', '2013-01-01'); 

тест производит вышеуказанную ошибку каждый раз, даже если это тот же формат, кажется, работает для других, например, в вопросе Using PHPUnit with Selenium, how can I test that an element contains exactly something?

+0

Я предлагаю либо попробовать '' # date_1_formatted'', либо '' [id = 'date_1_formatted'] "' – Richard

+0

Спасибо за предложение, но каждый из них по-прежнему производит ту же ошибку. –

+0

Я не могу найти какую-либо конкретную документацию, в которой явно указано, что такое '$ locator', но возможно, что он принимает только xpath. В этом случае я попробую '// // @ id = 'date_1_formatted']" ' – Richard

ответ

3

assertElementValueEquals не реализован в Selenium2TestCase. По вашей ссылке он упоминается для SeleniumTestCase (версия селена RC).

Кроме того, вы использовали правильную структуру с $ this-> byXPath как здесь https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

Также вы можете использовать $ this-> byId():

$element = $this->byId('date_1_formatted'); 
$this->assertEquals('2013-01-01', $element->value()); 

PS: Если вы знакомы с Selenium IDE, вы можете попробовать это command line tool.

+0

Если вы хотите получить значение, содержащееся между открывающими и закрывающими тегами, например, get 'Hello' в' Hello 'use' $ element-> text() 'accepting' $ element' является элементом 'a'. –

0

Прогулка по этому тоже, в моем случае это был мой собственный пользовательский метод, поэтому я подумал, что это линия.
Оказывается, я использовал другой класс «буфер» между тестовым классом и phpunit, чем я думал. Но поскольку он использует __call() Lot, он дал ↑ эту ошибку вместо «неопределенного метода».

Смежные вопросы