小编Car*_*ter的帖子

断言页面上有一定数量的元素

我正在使用 Laravel Dusk 编写一个测试,以确保索引页上有 10 篇文章。

下面是一些 HTML 代码:

<h1>A list of articles</h1>
<ul>
    @foreach($articles as $article)
        <li class="article-item"> {{ $article->title }}</li>
    @endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)

我想在我的测试文件中我可以首先选择所有li.article-item 然后断言有 10 个这样的元素。

代码可能是:

$this->browse(function ($browser) {
    $browser->visit('/articles')
        ->assertSee('A list of articles');
    // no such method
    $elements = $browser->findElements('.article-item');

    $this->assertCount(10, $elements);

});
Run Code Online (Sandbox Code Playgroud)

但实际上,Laravel Dusk 似乎不支持一次选择多个元素。那么在这种情况下我该如何构建我的测试呢?在 Dusk 中我有可能使用 WebDriver API 来选择这些元素吗?

谢谢你!

php selenium-webdriver laravel-5 laravel-5.4 laravel-dusk

6
推荐指数
1
解决办法
3070
查看次数

Laravel 5 Paginator生成的链接问题

当我尝试在Laravel 5中使用Paginator时,我遇到了一个奇怪的问题.数据和分页信息已经准备好了,但是当我在刀片中调用$ model-> render()时,页面链接完全错误.

以下是控制器中的一些示例代码:

public function index()
{
    $articles = Article::latest('published_at')->paginate(3);
    return view('articles/index')->with('articles',$articles);
}
Run Code Online (Sandbox Code Playgroud)

和刀片中的代码:

{!! $articles->render() !!}
Run Code Online (Sandbox Code Playgroud)

最后是路线中的代码:

Route::get('articles',array('as' => 'article-list','uses' => 'ArticleController@index'));
Run Code Online (Sandbox Code Playgroud)

问题是Laravel会为不同的页面生成错误的URL:example.com/articles/?page = 2 ,with additional/before?.

有一种解决方法可以在将数据传递给视图之前通过调用setPath()来更正URL,现在链接可以正常工作,如下所示:

$articles = Article::latest('published_at')->paginate(3);
$articles->setPath('articles');
return view('articles/index')->with('articles',$articles);
Run Code Online (Sandbox Code Playgroud)

但是还有其他选项来生成Laravel 5中页面的正确链接吗?我错过了什么?

谢谢.


环境更新:xampp.

pagination laravel laravel-5

5
推荐指数
1
解决办法
6350
查看次数