繁体   English   中英

Laravel Dusk 如何在元素内部查找元素?

[英]Laravel Dusk how to find elements inside elements?

我正在使用 Laravel 5.8,黄昏。 我想在类中找到某些元素。

因此,假设我使用selectable类提取了页面上的每个元素。

$browser->visit('https://www.website.com')
        ->script('window.scrollTo(0, 10000);');

$elems = $browser              
          ->pause(1000)
          ->elements('.selectable');

在此之后,我像这样遍历这些元素:

foreach ($elems as $elem) {

}

问题是,我如何才能在这些.selectable类中找到具有.custom-item类的每个元素。 此外,我想获得.custom-item的属性之一。 我曾经是这样得到的:

$elem->getAttribute('custom-attribute');

(从这个Laravel Dusk中学到了如何获取多个元素的属性?帖子)

那么如何在元素中查找/提取元素,然后使用 Laravel Dusk 获取它们的自定义属性?

Laravel Dusk 没有提供 API 方法来定位元素。 您可以通过使用底层的 webdriver API 来实现。

您可以通过以下方式访问网络驱动程序

$browser->driver

并在另一个元素中找到一个元素。 您可能需要通过 xPath 来处理它

$browser->driver->findElements(WebDriverBy::xpath('//*[@class="selectable"][@class="custom-attribute"]'));

我在上面的例子中编写了 xpath。 您可以通过检查 chrome 开发人员工具中的元素来找到确切的 xpath。

您可以在此处阅读有关 Dusk 中选择器的更多信息

https://www.5balloons.info/understanding-selectors-laravel-dusk-browser-testing/

更简单的方法:

$advs = $browser->elements('CSS_SELECTOR');

foreach ($advs as $adv) {

   // for example
   $adv->click();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM