В настоящее время я не понимаю, почему это происходит, но я не удивлюсь, если я ошибусь или пропущу одну крошечную мелочь.
Вот мой код:
(function() {
if (jQuery('section.news-feed ul li').text().length > 0) {
var length1 = parseInt(jQuery('section.news-feed ul li').text().length);
var length2 = 0;
setTimeout(function() {
length2 = parseInt(jQuery('section.news-feed ul li').text().length);
if (length1 !== length2) {
return true;
}
else {
return false;
}
}, 3000);
}
else {
return false;
}
})()
Я ищу логический возврат, но получаю "undefined". Специальные селекторы jQuery верны, и я правильно нахожу length1 и length2.
Чтобы еще больше добавить к вопросу, если есть кто-то с опытом Behat/Mink/Sahi, вот что я хочу сделать:
Поведение:
@javascript
Scenario: News ticker is moving
Given I am on the homepage
Then I should see the news ticker "section.news-feed ul li" move
Контекст:
/**
* @Then /^I should see the news ticker "([^"]*)" move$/
*/
public function iShouldSeeTheNewsTickerMove($element) {
$result = $this
->getSession()
->evaluateScript("
(function() {
if (jQuery('" . $element . "').text().length > 0) {
var length1 = parseInt(jQuery('" . $element . "').text().length);
var length2;
setTimeout(function() {
var length2 = parseInt(jQuery('" . $element . "').text().length);
if (length1 !== length2) {
return true;
}
else {
return false;
}
}, 3000);
}
else {
return false;
}
})()
");
echo "Result: " . $result;
if ($result === 'false') {
throw new Exception (
"The newws ticker doesn't seem to be ticking."
);
}
}
setTimeout()
возвращает дескриптор таймера, а не возвращаемое значение какой-либо функции, которую он вызывает. - person Dan O   schedule 12.06.2013false
. - person Selvakumar Arumugam   schedule 12.06.2013