我有一个表单文本字段,其中填充了默认值。我想清除该值并输入空格以声明预期的验证发生。我正在使用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扩展时这不起作用。
答案 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代码中解决了这个问题,并向维护者发出了拉取请求。
如果有人关心,这是我的要点:
答案 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.");