2011-05-31 24 views
3

我很好奇以下功能测试是否可能。我在这里使用Selenium-RC与PHPUnit_Extensions_SeleniumTestCase一起工作,但原则(我认为)应该适用于任何地方。对刚刚执行了type()的元素进行verifyText()是否有意义?

假设我在一个特定的div执行以下命令:

function testInput() { 
    $locator = $this->get_magic_locator(); // for the sake of abstraction 
    $this->type($locator, "Beatles"); // Selenium API call 
    $this->verifyText($locator, "Beatles"); // Selenium API call 
} 

从概念上讲,我觉得这个测试应该工作。我正在输入数据到一个特定的领域,我只是想验证文本现在存在输入为

但是,我的测试结果(verifyText声明失败)表明,即使在输入后,$locator元素的内容也是空的。

There was 1 failure: 

1) test::testInput 
Failed asserting that <string:> matches PCRE pattern "/Beatles/".` 

有没有其他人试过类似的东西?它应该工作吗?我是否犯了一个简单的错误?

回答

2

你应该使用verifyValue(locator,texttoverify)而不是verifyText(locator,value)用于验证文本值

+0

谢谢,这正是我所需要的! – Ryan 2011-06-01 15:01:17

+2

...这是因为'verifyText'查看元素的文本内容(*例如*,'this is some text'),并且INPUT元素没有任何内容。 'verifyValue'查看元素的VALUE属性,这就是INPUT元素具有“内容”的地方(*例如*,'') – 2011-06-02 15:25:07

1

要回答你最初的问题(“它是有意义的......”),嗯,也许。你在那个时候测试的是浏览器响应击键的能力,这可能会有些尴尬。除非你有一些JavaScript代码连接到某些字段的属性,在这种情况下,它可能有点重要。

标准程序员的答案 - “这取决于”。

相关问题