Laravel Dusk - щелкните элемент на основе атрибута

У меня есть этот код:

   <ul class="changed each time" data-auto="timeSlots" aria-label="Choose party time">
   <li datetime="2019-06-03T14:30" offset="-30" type="standard">
      <button offset="-30" role="link">2:30 pm</button>
   </li>
   <li  datetime="2019-06-03T14:45" offset="-15" type="standard">
      <button  offset="-15" role="link">2:45 pm</button>
   </li>
   <li  datetime="2019-06-03T15:00" offset="0" type="standard">
      <button  offset="0" role="link">3:00 pm</button>
   </li>
   <li  datetime="2019-06-03T17:30" offset="150" type="standard">
      <button  offset="150" role="link">5:30 pm</button>
   </li>
   <li >
   <button  disabled="" role="link"></button></li>
</ul>

Я использую Laravel Dusk и как я могу нажать кнопку на основе атрибута datetime?

Я старался:

$browser->click($browser->element('li[datetime="2019-06-03T15:00"]'))->pause(2000);

но я получил ошибку:

ErrorException (E_WARNING) preg_match() ожидает, что параметр 2 будет строкой, данный объект

Есть ли способ нажать на атрибут?


person Aleks Per    schedule 02.06.2019    source источник
comment
Просто передайте строку, не передавайте элемент. $browser->click('li[datetime="2019-06-03T15:00"]'). Функция click ожидает селектор (в виде строки), а не элемент browser, отсюда и ошибка preg_match.   -  person Ohgodwhy    schedule 02.06.2019
comment
@Ohgodwhy Это не работает   -  person Aleks Per    schedule 02.06.2019
comment
Попробуйте также эти 2 ссылки, которые очень полезны для меня github и < href="https://www.5balloons.info/understanding-selectors-laravel-dusk-browser-testing" rel="nofollow noreferrer">форум   -  person Phantom1412    schedule 02.08.2020


Ответы (1)


это сработало:

$btn = $browser-›element('YOUR_SELECTOR');

$btn-›клик();

person Mohammad Masoudzadeh    schedule 26.04.2021