Php 使用动态xpath时xpath断言失败
这非常类似于: 但有点不同 我想做的是:Php 使用动态xpath时xpath断言失败,php,xpath,selenium-webdriver,phpunit,assertions,Php,Xpath,Selenium Webdriver,Phpunit,Assertions,这非常类似于: 但有点不同 我想做的是: $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}')]"))
$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);
断言两个字符串相等失败。
---期望
+++实际的
@@ @@
-“测试!”
+‘测试!’
知道为什么$elementtext被设置为“Test!”,并在末尾加上点吗?我在这里陷入了僵局,不知道它究竟为什么要添加点。我发现了我的问题
这是因为postToPage()正在将其内容输入到另一个span元素中,因此,我的waitUntil()引用该元素以继续,而不是新创建的span。我的断言也仍然抓住了postToPage()的问题。我发现了我的问题
这是因为postToPage()正在将其内容输入到另一个span元素中,因此,我的waitUntil()引用该元素以继续,而不是新创建的span。我的assert还在获取postToPage()方面的标记。请显示您正在查找的
span
元素的HTML表示形式。它没有任何标记,只有postToPage($status)将元素添加到页面中。我试图使用assertEquals()的目的是断言的内容与$status的内容匹配,更明确地说:$status,或者在本例中,我的跨度正好是我页面上的这个:Test!然而,当调用$elementtext中描述的方法时,返回的是“Test!”,这很有趣,如果我回显$elementtext,则返回“Test!”,但如果我先睡几秒钟,然后回显,则返回“Test!”。请显示您正在查找的span
元素的HTML表示形式。它除了本质上的postPage($status)之外没有其他标记将元素添加到页面中。我试图使用assertEquals()的目的是断言的内容与$status的内容匹配,更明确地说:$status,或者在本例中,我的跨度正好是我页面上的这个:Test!然而,当调用$elementtext中描述的方法时,返回的是“Test!”,这很有趣,如果我回显$elementtext,我会得到“Test!”,但是如果我睡几秒钟,然后回显,我会得到“Test!”