Селен: Как ввести пробел в качестве значения текстового поля? - PullRequest
4 голосов
/ 26 мая 2010

У меня есть текстовое поле формы, которое заполняется значением по умолчанию. Я хотел бы очистить значение и ввести пробел, чтобы утверждать, что ожидаемая проверка происходит. Я использую Selenium RC и расширение PHPUnit Selenium. Как мне этого добиться?

Примечание: я уже пытался сделать это, но они не работают:

$this->type('FirstName', "  "); //spaces
$this->type('FirstName', "\t"); //tab character

Они очищают значение из поля, но не вводят пустое пространство в поле.

Обновление: Я обнаружил, что если вы используете Selenium IDE, вы можете ввести пробел, используя ${space} переменную , но это не работает при использовании Selenium RC и Расширение PHPUnit Selenium.

Ответы [ 7 ]

2 голосов
/ 12 октября 2011

Я исправил это в коде phpunit-selenium на github и сделал запрос на доставку к сопровождающему.

Вот мой смысл, если кому-то все равно:

https://github.com/undernewmanagement/phpunit-selenium/commit/1b783ba8cfe4736f525b316a75a991e0a701afd1

2 голосов
/ 01 июля 2010

недавно у меня возникла такая же проблема, как у Эндрю, где $ {space} не работает в Selenium RC. Я узнал, что решение Zugwalt полезно. Вот что я сделал, чтобы захватить пробел.

selenium.focus("txt_textbox1");
selenium.keyPressNative("32");
strOutput = selenium.getEval("this.browserbot.findElement('txt_textbox1').value = ' ';");

Надеюсь, это поможет;)

Спасибо @!

1 голос
/ 27 мая 2010

Вы можете использовать внедрение javascript и напрямую манипулировать значением

selenium.getEval("this.browserbot.findElement('FirstName').value = ' ';");

Обратите внимание, что это не будет запускать какие-либо события, поэтому вам придется вручную запускать их при желании.

0 голосов
/ 13 июля 2014

Это должно работать для phpunit с Selenium:

class MyTest extends PHPUnit_Extensions_Selenium2TestCase
{
    public function testSomething()
    {
        $textField = $this->byCssSelector('.blah');

        // ...

        $textField->clear();
        $textField->value(" ");

        // test assertion to follow
    }
}

Если вы хотите ввести предложение, следующее не будет работать:

$textField->value("this is a sentence.");

Следующее будет:

$textField->value("this");
$textField->value(" ");
$textField->value("is");
$textField->value(" ");
$textField->value("a");
$textField->value(" ");
$textField->value("sentence.");
0 голосов
/ 14 июля 2010

Вы можете попробовать selenium.typeKeys('FirstName'," "); Пожалуйста, дайте мне знать, если это сработало.

0 голосов
/ 27 мая 2010

Как насчет использования функции keyPress () для "нажатия" пробела?

0 голосов
/ 26 мая 2010

Как насчет установки его значения в пустую строку ('')?

...