Laravel Dusk - получить элемент textarea по атрибуту и ​​набрать текст - PullRequest
0 голосов
/ 19 июня 2019

Я использую 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>

Как мне ввести текст в текстовую область и нажать на кнопку? Там нет ни имени, ни класса, ни идентификатора ... только атрибут ...

Я пытаюсь:

$browser->element("textarea[data-auto='notes']")->type('some notes');
$browser->element("/button/svg")->click();
$browser->pause(1000);

но ничего не произошло.

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Используйте keys() вместо type():

$browser->keys('textarea[data-auto="notes"]', 'some notes');

Используйте click() и действительный селектор CSS:

$browser->click('button');
0 голосов
/ 19 июня 2019

Почему бы не добавить свой собственный селектор?

<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)

...