Это очень похоже на: добавление переменной php в Xpath
Но немного отличается …
То, что я пытаюсь сделать, это:
$status = "Test!";
//ajax request to update the page
$this->postToPage($status);
//This is the part that is failing..
$this->waitUntil(function ()
{
if ($this->byXPath("//span[contains(text(),'{$status}')]"))
{
return true;
}
return null;
}, 20000);
$elementtext = $this->byXpath("//span[contains(text(),'{$status}')]")->text();
$this->assertEquals($status, $elementtext);
Не удалось утверждать, что две строки равны.
— Ожидается
+++ Actual
@@ @@
-‘Тестовое задание!’
+ ‘Test !.’
Любая идея, почему $ elementtext устанавливается на «Test !.» с точкой на конце? Я зашел в тупик и понятия не имею, почему на земле он добавляет точку.
Я нашел свою проблему.
Это потому, что postToPage () вводит свое содержимое в другой элемент span, и поэтому мой waitUntil () ссылается на это для продолжения, а не на вновь созданный span. мое утверждение также все еще захватывало в отношении postToPage ().
Других решений пока нет …