2015-04-25 3 views
3

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

Источника HTML структура: (это которые будут отображаться во всплывающем окне [Ui-диалоге, щ-виджет])
Как использовать регулярное выражение в скрипте sahi?

<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

Может ли один скажите, пожалуйста, что не так я делаю?

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

ответ

0

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

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

ИЛИ

_click(_span(0, _in(_link("addWidgetDone_Link")))); 
+0

Я попытался это, но не работает. – BhushanK

0

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

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

// это означает, что он будет нажать на 5-й "сделано" -span-элемент в вашей структуре DOM

_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; 
    } 
} 
Смежные вопросы