Как нажать кнопку диалога jQuery в TestCafe - PullRequest
1 голос
/ 26 июня 2019

Я создаю автоматический тест с использованием TestCafe, и мне нужно закрыть диалоговое окно jQuery с помощью кнопки «ОК».

HTML, сгенерированный диалогом jQuery (содержащим кнопку OK):

<div tabindex="-1" role="dialog" class="ui-dialog ui-corner-all ui-widget ui-widget-content ui-front ui-dialog-buttons information-dialog" aria-describedby="alert-dialog" aria-labelledby="ui-id-2" style="height: auto; width: 300px; top: 325.046px; left: 645.5px;">
<div class="ui-dialog-titlebar ui-corner-all ui-widget-header ui-helper-clearfix">
<span id="ui-id-2" class="ui-dialog-title">Information</span>
<button type="button" class="ui-dialog-titlebar-close" style="display: none;"></button>
</div>
<div id="alert-dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 30.062px; max-height: none; height: auto;">Record created. Visit ID is 10008444</div>
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset"><button type="button" class="ui-button ui-corner-all ui-widget">OK</button></div>
</div>
</div>

Скрипт TestCafe:

import { Selector } from 'testcafe';

 fixture `My Test`
.page ('http://localhost/');

test('LOBO PS test', async t => {
    await t
        .click('#btnPRSave')
        .click(Selector("button").withText("OK"));
});

Приведенный выше скрипт «найдет» кнопку в строке «.click (Selector ...», но курсор над ней не щелкнет. Я пропустил шаг?

UPDATE

Я создал скрипку , чтобы проверить это дальше ... и там он отлично работает. Сценарий TestCafe для этого:

import { Selector } from 'testcafe';

 fixture `My Test`
.page ('https://jsfiddle.net/gcass/63fbm8ns/8/');

test('LOBO PS test', async t => {
    await t
    .switchToIframe('[name="result"]')
    .click(Selector("button").withText("OK"))
});

Различия между jsfiddle и реальной версией:

  1. Скрипка использует iFrame - вероятно, не имеет значения;
  2. Реальный диалог появляется поверх Bootstrap Modal ..., который я подозреваю, может быть уместным.

1 Ответ

2 голосов
/ 27 июня 2019

Оказалось, что проблема IE.Я запустил один и тот же тест в Edge и Chrome, и он без проблем нажал кнопку диалога jQuery.

...