我正在使用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) {
}
问题是,如何在这些.custom-item
类中找到.selectable
类的每个元素。另外,我想获得.custom-item
的属性之一。我以前是这样得到的:
$elem->getAttribute('custom-attribute');
(从此Laravel Dusk how to get multiple element's attributes?帖子中学到)
那么我该如何在元素内部查找/提取元素,然后使用Laravel Dusk获得其自定义属性?
答案 0 :(得分:1)
Laravel Dusk不提供用于定位元素的API方法。您可以利用基础的webdriver API来做到这一点。
您可以通过
访问网络驱动程序$browser->driver
找到另一个元素的元素。您可能需要通过xPath进行处理
$browser->driver->findElements(WebDriverBy::xpath('//*[@class="selectable"][@class="custom-attribute"]'));
我在上面的示例中组成了xpath。您可以通过检查chrome开发人员工具中的元素来找到确切的xpath。
您可以在此处详细了解黄昏中的选择器
https://www.5balloons.info/understanding-selectors-laravel-dusk-browser-testing/
答案 1 :(得分:0)
更简单的方法:
$advs = $browser->elements('CSS_SELECTOR');
foreach ($advs as $adv) {
// for example
$adv->click();
}