Автоматический щелчок нескольких кнопок с добавлением waitForKeyElements

Если вы хотите, вы можете просто сделать переадресацию со своего промежуточного программного обеспечения:

if (something in my database have status == 0) {
    return redirect()->route('route_a_name');
} else {
    return redirect()->route('route_b_name');
}

Просто убедитесь, что вы назовете свои маршруты в своем routes/web.php.

Пример:

Route::get('/route_a', 'YourController@RouteA')->name('route_a_name');

Редактирование:

На основании дополнительной информации, которую вы предоставили, промежуточное программное обеспечение для того, что вы пытаетесь достичь, является скорее сверху. Вместо этого вы можете просто использовать один маршрут и передать параметр статуса. Для получения дополнительной информации о параметрах маршрутизации см. https://laravel.com/docs/5.6/routing#route-parameters .

Пример:

Route::get('/your_route/{status}', 'YourController@ControllerAction');

Затем в контроллере обработайте логику, основанную на статусе:

function ControllerAction(Request $request, $status) {
    if ($status == 0) {
        //Show view for A
    } else {
        //Show view for B
    }
}

0
задан theCrabNebula 19 January 2019 в 03:36
поделиться

1 ответ

Вы можете создать функцию, которая, согласно тексту <span>, находит соответствующий элемент и щелкает по его родительскому элементу. После срабатывания waitForKeyElements вызовите эту функцию с помощью Male и Mr.:

const findAndClickParent = text => [...document.querySelectorAll('label > span')]
  .find(e => e.textContent === text)
  .parentElement
  .click();

waitForKeyElements (
  "label",
  () => {
    findAndClickParent('Male');
    findAndClickParent('Mr.');
  }
);

. Если вы хотите повысить эффективность, вы можете создать объект из этих совпадающих элементов при срабатывании обратного вызова (при условии, что ни один из них, который вас волнует), и каждый раз обращайтесь к соответствующему свойству, например:

waitForKeyElements (
  "label",
  () => {
    const parentsByTextContent = Array.prototype.reduce.call(
      document.querySelectorAll('label > span'),
      (a, e) => {
        a[e.textContent] = e.parentElement;
        return a;
      },
      {}
    );
    parentsByTextContent['Male'].click();
    parentsByTextContent['Mr.'].click();
  }
);
0
ответ дан CertainPerformance 19 January 2019 в 03:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: