Laravel Dusk-通过属性获取textarea元素并输入文本

时间:2019-06-19 08:23:42

标签: laravel selenium selenium-webdriver selenium-chromedriver laravel-dusk

我正在使用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);

但什么也没发生。

2 个答案:

答案 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

否则,您始终可以通过右键单击开发者控制台中的元素来获取选择器,但我不建议这样做。

Copying the selector from the developer console (来源:https://github.com/GoogleChrome/puppeteer/issues/4550#issuecomment-500177115