【问题标题】:Laravel dusk scroll and waitFor dynamic elementLaravel黄昏滚动和waitFor动态元素
【发布时间】:2019-05-09 06:09:38
【问题描述】:

我有列表在向下滚动页面时动态显示,例如,当我打开页面时,只有<div id="list-0" date="2018-01-01"></div>,向下滚动后,<div id="list-1" date="2018-01-02"></div>会动态显示,与<div id="list-2" date="2018-01-03"></div>相同和<div id="list-3" date="2018-01-04"></div>等等。

这些列表无法在 chrome view-source(ctrl+U) 上看到

如果没有list-n,我想使用laravel黄昏向下滚动页面,并检索日期属性。

这是我的代码

/** @test */
public function scroll_down_each_list_and_match_the_date()
{
    $this->browse(function (Browser $browser) {

        $browser->visit('/lists');

        $listsLength = $this->listsLength();

        for($i = 0; $i <= $listsLength; $i++){

            $selector = "div[id=\"list-$i\"]";

            while(!$browser->waitFor($selector)){

                $browser->driver->executeScript('window.scrollTo(0, 500);');
            }

        $date = $browser->attribute($selector, 'date');

        $browser->assertEquals($date, $this->date($i));

        }
    });
}

断言错误是 Facebook\WebDriver\Exception\TimeOutException:等待选择器 [div[id="list-1"]] 5 秒。

如果我将 while(!$browser-&gt;waitFor($selector)) 替换为 while(!$browser-&gt;element($selector)),似乎 laravel 黄昏将永远执行并且不会停止。

【问题讨论】:

    标签: laravel testing laravel-5.7 laravel-dusk


    【解决方案1】:

    而不是: $selector = "div[id=\"list-$i\"]";

    也许试试: $selector = $browser->attribute('list-$i', 'id');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-23
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多