如何在Selenium-RC中存储一个值(通过PHPUnit),然后使用PHPUnit检索/访问它?
假设我在测试中运行如下命令:
$this->storeExpression( "foo", "bar" );
如果我正确理解Selenium API文档,我可以使用javascript{storedVars['foo']}
使用优秀的“老式Selenese”来访问此数据。它应包含值"bar"
。
我的问题是:如何在PHPUnit中访问此javascript{storedVars['test']}
表达式(或者更常见的是javascript{storedVars}
?
例如,这是我运行的一个简单测试:
public function testStorage()
{
$this->open('http://www.google.com/'); // for example
$this->storeExpression( 'foo', 'bar' );
$foo = $this->getExpression('foo');
echo $foo;
}
其输出是“foo”(在其他标准PHPUnit输出中),而我预计它应该是“bar”。它只是给了我表达的名称,而不是它的价值。
有经验的人能给我一些指导吗?
答案 0 :(得分:2)
此主题中的帖子不错,但到目前为止看起来没有100%的回答。
基于Selenium参考
http://release.seleniumhq.org/selenium-core/1.0/reference.html#storedVars
似乎正确的代码语法是:
$this->storeExpression( 'bar', 'foo' );
$foo = $this->getExpression("\${foo}");
我没有完全测试过,但是用
做了类似的事情$this->storeHtmlSource('srcTxt');
$val = $this->getExpression('\${srcTxt}');
print $val;
为我做了诀窍。
答案 1 :(得分:1)
PHPUnit Selenium Testcase驱动程序实际上理解storeExpression
和getExpression
;看看它的源代码。你可以做到
$this->storeExpression('foo', 'bar');
和
$this->getExpression('foo');
答案 2 :(得分:0)
由于Selenium将表达式结果存储在第二个参数中,它将值存储在“bar”中,当你需要调用它时,你应该调用存储的名称来获取表达式。
$this->storeExpression( 'foo', 'bar' );
$foo = $this->getExpression("bar");
这可以帮助你为我工作。
编辑:
$evaluated = $this->getEval("regex:3+3");
$expressed = $this->getExpression("regex:3+3");
First Evaluated将给出表达式的评估输出 第二个将显示表达的输出。 secound用于验证指定的表达式是否由警报生成。