Selenium 2 phpunit从注入的javascript代码中获取值

时间:2016-07-25 10:29:36

标签: php selenium selenium-webdriver phpunit

我正在使用Selenium2TestCaseTest,可以找到here 我试图获取jquery滑块的值,在搜索之后我发现this解决方案

$this->execute(
              array(
                     'script' => "$('#Slider_id').slider('option', 'value', 505);",
                     'args'   => array()
                   )
              );

但它只允许我更改滑块的值,然后我尝试使用这些命令获取它的值:

 $this->execute(
                array( 
                       'script' => "$('#Slider_id').slider('option', 'value');",
                       'args'   => array()
                     )
               );

和此:

 $this->execute(
                 array( 
                        'script' => "$('#Slider_id').slider('value');",
                        'args'   => array()
                      )
                );

并且它不返回任何内容(NULL),有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

为了获得您使用selenium注入浏览器的代码返回的值,您需要在运行的代码之前添加return
这与您使用selenium运行的每个javascript代码相关,而不是专门用于jQuery ui滑块。

$val = $this->execute([
    'script' => "return $('#Slider_id').slider('option', 'value');"
    'args' => []
]);

更简单的例子:

$val1 = $this->execute([
    'script' => "return 1;"
    'args' => []
]);

$val2 = $this->execute([
    'script' => "return Math.max(10, 15);"
    'args' => []
]);

$val3 = $this->execute([
    'script' => "return function(){return 2}();"
    'args' => []
]);