2016-07-25 3 views
2

Я использую Selenium2TestCaseTest, который можно найти here , и я пытаюсь получить значение ползунка Jquery, после поиска здесь я нашел this решенияСелена 2 PHPUnit значение Достаньте из внедренного кода яваскрипта

$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), может ли кто-нибудь помочь мне с этим, пожалуйста?

+0

мне удалось получить обходной путь, получая текстовое значение слайдера с помощью этого заявления: $ this-> byCssSelector ('# сообщения слайдер значение span.value «) -> текст(); однако, это не то, что я хотел ... –

ответ

1

Для того чтобы получить значение, возвращаемое кодом, введенным в браузер с использованием селена, необходимо добавить return перед кодом, который вы запускаете.
Это относится к КАЖДОМУ javascript-коду, который вы используете, используя селен, а не специально для jQuery ui slider.

$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' => [] 
]); 
Смежные вопросы