[英]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.