Laravel Dusk – получить элемент textarea по атрибуту и ​​ввести текст

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

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


person Aleks Per    schedule 19.06.2019    source источник
comment
Какую именно стратегию поиска вы используете? textarea[data-auto='notes'] предлагает Css, где как /button/svg xpath   -  person DebanjanB    schedule 19.06.2019


Ответы (2)


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

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

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

$browser->click('button');
person Jonas Staudenmeir    schedule 19.06.2019
comment
да, но это не только кнопка на странице $browser-›click('button'); - person Aleks Per; 19.06.2019
comment
У родителей кнопки есть классы или идентификаторы? - person Jonas Staudenmeir; 19.06.2019
comment
Нам нужен способ уникальной идентификации кнопки. Есть ли у других кнопок элемент svg? - person Jonas Staudenmeir; 19.06.2019
comment
Давайте продолжим обсуждение в чате. - person Aleks Per; 19.06.2019

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

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

person LevFlavien    schedule 19.06.2019
comment
потому что у меня нет доступа к оригинальному контенту - это не мой сайт, я использую его для проверки цен - person Aleks Per; 19.06.2019