2017-02-07 3 views
0

У меня есть сценарий, в котором я должен автоматизировать страницу с полным текстовым полем kendoUI.Использование selenium для автоматизации числового текстового поля kendoUI без javascript

Я могу найти элемент, используя xpath or id selector, однако, когда селен пытается ввести значение в указанном текстовом поле он получает исключения, такие как:

ElementNotVisibleException => когда пытался нажать на указанный элемент.

InvalidElementStateException => когда пытались ввести значение с помощью SendKeys

я ищу решение, которое может автоматизировать эту задачу без использования ExecuteJavascript interface.

Ниже приведен пример html одного такого текстового поля:

<div class="form-group"> 
    <label for="sheet_width">Page Width<span class="ep-required-label" ng-show="sheet_maintenance_form.sheet_width.$error.required" aria-hidden="false" style="">*</span> 
    </label> 
    <span class="k-widget k-numerictextbox ng-dirty ng-valid-parse ng-touched ng-empty ng-invalid ng-invalid-required"> 
     <span class="k-numeric-wrap k-state-default"> 
      <input type="text" class="k-formatted-value ng-pristine ng-untouched ng-valid k-input" title="" tabindex="0" role="spinbutton" aria-valuemin="0" aria-valuemax="999.999" aria-disabled="false" style="display: inline-block;"> 
      <input ng-required="true" kendo-numeric-text-box="sheet_width" k-options="sheet_edit_controller.sheet_field_options" ng-model="sheet_edit_controller.sheet_config.sheet_width" name="sheet_width" id="sheet_width" class="k-input ng-dirty ng-valid-parse ng-touched ng-empty ng-invalid ng-invalid-required" data-role="numerictextbox" role="spinbutton" type="text" aria-valuemin="0" aria-valuemax="999.999" aria-disabled="false" required="required" aria-invalid="true" style="display: none;"> 
      <span class="k-select"> 
       <span unselectable="on" class="k-link k-link-increase" aria-label="Increase value" title="Increase value"> 
        <span unselectable="on" class="k-icon k-i-arrow-60-up"/> 
       </span> 
       <span unselectable="on" class="k-link k-link-decrease" aria-label="Decrease value" title="Decrease value"> 
        <span unselectable="on" class="k-icon k-i-arrow-60-down"/> 
       </span> 
      </span> 
     </span> 
    </span> 
</div> 

Может кто-нибудь помочь мне в этом вопросе?

Ваша помощь очень ценится.

ответ

1

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

Actions actions = new Actions(Browser); 
actions.MoveToElement(
Container.FindElement(By.CssSelector("span.k-i-arrow-n"))).Click().Perform() 
+0

спасибо Роберту. Это сработало!!! Хитрость заключалась в том, чтобы щелкнуть по одной из кнопок со стрелкой, которая, в свою очередь, изменяет состояние текстового поля ввода. – DashmeetSingh

+0

Да, плохо написано мной, извините за это, но я рад помочь. – Robert

Смежные вопросы