Php 我可以在不使用REST模块的情况下从AJAX请求中搜索元素吗?
我的应用程序中有一个表,它在收到AJAX请求后显示。我使用Php 我可以在不使用REST模块的情况下从AJAX请求中搜索元素吗?,php,functional-testing,codeception,Php,Functional Testing,Codeception,我的应用程序中有一个表,它在收到AJAX请求后显示。我使用sendAjaxPostRequest()并希望使用grabMultiple()函数从中获取文本,但是codeception找不到xpath指向的元素。我100%确信xpath是正确的,因为即使在_输出html文件上,我也可以使用Chrome的控制台找到它 另一件事是我可以使用I->see(“text”)找到表中的文本 我使用PageObjectPattern,但简单地说,我的代码如下所示: $I->sendAjaxPostRequ
sendAjaxPostRequest()
并希望使用grabMultiple()
函数从中获取文本,但是codeception找不到xpath指向的元素。我100%确信xpath是正确的,因为即使在_输出html文件上,我也可以使用Chrome的控制台找到它
另一件事是我可以使用I->see(“text”)
找到表中的文本
我使用PageObjectPattern,但简单地说,我的代码如下所示:
$I->sendAjaxPostRequest($req-address);
$I->see('event to search');
$events = $I->grabMultiple("//a[contains(@href, '/event/')");
$I->assertContains('event to search', $events);
答复包括:
<div class="col-md-6 col-sm-8">
<h3 class="event_name_published">
<a href="/event/event-to-search">event to search</a>
</h3>
</div>
see('event to search')
函数通过,而grabMultiple
为我提供
元素,该元素将CSS、XPath或Regex元素与
“//找不到[contains(@href,/event/)”
您知道在执行AJAX请求后使用xpath定位元素的方法吗?您从AJAX调用中得到的响应是什么。并显示您尝试过的代码。+确保您正在搜索的元素可见。$I->see()只查找可见元素。我确信它们是。在_output文件夹中,我得到了html文件,其中包含测试失败的视图,我可以看到此元素,还可以通过chrome控制台使用其xpathTry在
sendAajxPostRequest()之后等待几秒钟(例如,$I->wait(2000)
)
。在ajax调用后将新元素插入页面或显示新元素之前调用了$I->see()
。我不能在功能测试中使用$I->wait()
,因为它要求WebDriver模块可用于验收测试。