Это очень похоже на: добавление переменной 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);
Не удалось утверждать, что две строки равны. — Ожидаемый +++ Фактический @@ @@ -'Test! ' + 'Test !.'
Любая идея, почему $ elementtext устанавливается на «Test !.» с точкой на конце? Я пришел сюда в тупик и понятия не имею, почему на земле это добавление точки.
Я нашел свою проблему.
Это связано с тем, что postToPage () вводит свое содержимое в другой элемент span, и поэтому мой waitUntil () ссылается на это, чтобы продолжить, а не на вновь созданный диапазон. мое утверждение также по-прежнему хватало в отношении postToPage ().