Selenium:如何输入空格作为文本字段的值?

时间:2010-05-26 15:35:40

标签: selenium phpunit selenium-rc

我有一个表单文本字段,其中填充了默认值。我想清除该值并输入空格以声明预期的验证发生。我正在使用Selenium RC和PHPUnit Selenium扩展。我怎样才能做到这一点?

注意:我已经尝试过这些,但它们不起作用:

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

他们清除了字段中的值,但是他们没有在字段中输入空格。

更新:我发现if you are using Selenium IDE, you can type white space by using their ${space} variable但是在使用Selenium RC和PHPUnit Selenium扩展时这不起作用。

7 个答案:

答案 0 :(得分:2)

最近我遇到了同样的问题就像安德鲁那样$ {space}在Selenium RC中不起作用。我发现Zugwalt的解决方案很有用。以下是我捕捉空白的方法。

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

希望这个帮助;)

谢谢@!

答案 1 :(得分:2)

我在github上的phpunit-selenium代码中解决了这个问题,并向维护者发出了拉取请求。

如果有人关心,这是我的要点:

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

答案 2 :(得分:1)

您可以使用javascript注入并直接操作值

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

请注意,这不会触发任何事件,因此如果需要,您必须手动触发它们。

答案 3 :(得分:0)

如何将它的值设置为空字符串('')?

答案 4 :(得分:0)

如何使用keyPress()函数“按”空格键?

答案 5 :(得分:0)

您可以尝试selenium.typeKeys('FirstName'," "); 如果有效,请告诉我。

答案 6 :(得分:0)

这应该适用于使用Selenium的phpunit:

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.");