'a[data-action="delete"]:visible', '@confirm' => '.swal2-confirm', '@cancel' => '.swal2-cancel', ]; } /** * 选中. * * @param Browser $browser * @param string|array $value * * @return Browser */ public function delete(Browser $browser, $value) { $parent = $this->formatSelector($browser, '@item'); if (is_numeric($value)) { $selector = "$('{$parent}').eq($value)"; } else { $value = admin_url($value); $selector = "$('{$parent}[data-url=\"{$value}\"]')"; } $browser->script( <<waitForConfirmDialog($browser); $this->clickConfirmButton($browser); $this->waitForSucceeded($browser); return $browser; } /** * 等待确认弹窗. * * @param \Laravel\Dusk\Browser $browser * * @return \Laravel\Dusk\Browser */ public function waitForConfirmDialog(Browser $browser) { return $browser->waitForText(__('admin.delete_confirm'), 1); } /** * 等待成功信息. * * @param \Laravel\Dusk\Browser $browser * * @return \Laravel\Dusk\Browser */ public function waitForSucceeded(Browser $browser) { $browser->waitForText(__('admin.delete_succeeded'), 2); return $browser; } /** * 点击确认删除按钮. * * @param \Laravel\Dusk\Browser $browser * * @return \Laravel\Dusk\Browser */ public function clickConfirmButton(Browser $browser) { $browser->script("$('{$this->formatSelector($browser, '@confirm')}').first().click()"); return $browser; } }