Как использовать регулярное выражение в скрипте сахи?

Я использую sahi для автоматизации веб-сайта, когда я записываю действия с рекордера sahi, он записывает действие нажатия кнопки (фактически «промежуток») как _click(_span("Done[4]"));
, но когда я играю записанный сценарий, он не работает. эта строка, так как она не нашла "Готово [4]".
Чтобы решить эту проблему, я просто попробовал регулярное выражение, чтобы щелкнуть _span("Done[4]"), но не повезло.

Исходная структура HTML: (это отображаться во всплывающем окне [ui-dialog,ui-widget])

<div class="dashboardDlgButtonPanel">
<div id="addWidgetDone_wrapper" class="input_button  ">
    <div id="addWidgetDone" class="form_input_button">
        <div class="buttonwrapper">
            <a style="width: 49px; height: 41px; display: block;" id="addWidgetDone_Link" class="PrimaryButton" href="#" s1ignore="true" data-role="button" title="">
                <span>Done</span>
            </a>
        </div>
    </div>
</div>
<div id="addWidgetCancel_wrapper" class="input_button  tertiaryButton">
    <div id="addWidgetCancel">
        <div class="buttonwrapper">
            <a id="addWidgetCancel_Link" class="link" href="#" s1ignore="true" title="">Cancel</a>
        </div>
    </div>  
</div>
</div>

Я попробовал следующее одно за другим:

_click(_span(/Done.*/));
_click(_span(/Done\\[[0-9]\\]/));
_click(_span(/Done\[[0-9]\]/));
_click(_span(/Done/i));
_click(_span("/Done/"));
_click(_span(new Reg Exp("Done\\[[0-9]\\]")));
_click(_span(/Done.*/,_near(_div("addWidgetDone_wrapper[1]"))));
_click(_span(/Done.*/,_near(_div(/addWidgetDone_wrapper\\[[0-9]\\]/))));
_click(_span(/Done.*/,_near(_div(/addWidgetDone_wrapper.*/))));
_click(_span(/Done.*/,_in(_div("addWidgetDone_wrapper[1]"))));
_click(_span(/Done.*/,_in(_div(/addWidgetDone_wrapper/))));
_click(_span(/Done.*/,_in(_div(/addWidgetDone_wrapper.*/))));

и многие другие комбинации, но ни одна из них не работает.

Ссылка: sahi-link-1, sahi-link-2

Может ли кто-нибудь сказать мне, что я делаю неправильно?

Примечание: В записанном действии "Готово[4]" числовая часть каждый раз меняется.


person BhushanK    schedule 25.04.2015    source источник


Ответы (2)


Пожалуйста, попробуйте использовать

_click(_span(Done[0], _in(_link("addWidgetDone_Link"))));

OR

_click(_span(0, _in(_link("addWidgetDone_Link"))));
person Anirudh    schedule 25.04.2015

Если элемент не был найден, либо имя больше не подходит, из-за изменения структуры в вашем DOM, либо элемент действительно не их, что вы оба должны проверить в первую очередь.

Попробуйте использовать:

//this means it will click the 5th "done"-span-element in your DOM structure
_click(_span("/Done/[4]"));

Что касается изменений структуры, попробуйте:

for(var $i = 0; $i<99; $i++){
    var $I = JSON.stringify($i);
    if (_isVisible(_span("Done["+$I+"]"))){
        _click(_span("Done["+$I+"]"));
        break;
     }
}
person dima    schedule 21.11.2015