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

Selenium 2 phpunit get value from injected javascript code

我正在使用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()
                      )
                );

它没有 return 任何东西(NULL),有人可以帮我解决这个问题吗?

为了获得使用 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' => []
]);