我正在使用Laravel Dusk,并且我在一页上有这个HTML:
<div>
<textarea class="" data-auto="notes" style="height: 72px;"></textarea>
<button class="">
<svg viewBox="0 0 9.877141 7.3747067" height="7.375" width="9.877">
<path d="M8.517 0a.56.56 0 0 0-.397.166L3.896 4.418l-2.14-2.14a.56.56 0 0 0-.796 0l-.795.794a.56.56 0 0 0 0 .795l2.53 2.53c.005.005.006.012.011.017l.795.795.002.002c.22.219.576.218.795-.002l5.416-5.455A.561.561 0 0 0 9.712.96L8.917.164h-.002A.561.561 0 0 0 8.517 0z" ></path>
</svg>
</button>
<div class=""></div>
</div>
如何在文本区域中键入文本并单击按钮?没有名称,没有类别,没有ID ...只有属性...
我尝试:
$browser->element("textarea[data-auto='notes']")->type('some notes');
$browser->element("/button/svg")->click();
$browser->pause(1000);
但什么也没发生。
答案 0 :(得分:1)
使用keys()
代替type()
:
$browser->keys('textarea[data-auto="notes"]', 'some notes');
使用click()
和有效的CSS选择器:
$browser->click('button');
答案 1 :(得分:0)
为什么不添加自己的选择器?
<button dusk="my-button"></button>
然后黄昏:
$browser->click('@my-button');
请参见https://laravel.com/docs/5.8/dusk#interacting-with-elements
否则,您始终可以通过右键单击开发者控制台中的元素来获取选择器,但我不建议这样做。
(来源:https://github.com/GoogleChrome/puppeteer/issues/4550#issuecomment-500177115)