Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以在不使用REST模块的情况下从AJAX请求中搜索元素吗?_Php_Functional Testing_Codeception - Fatal编程技术网

Php 我可以在不使用REST模块的情况下从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

我的应用程序中有一个表,它在收到AJAX请求后显示。我使用
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模块可用于验收测试。