Selenium webdriver how to get the enabled status of an angularjs Li element -
i have following angular.js
on page. items being displayed angular.js
li
items. 1 greyed out other enabled. when use selenium webdriver
method .isenabled()
, both greyed out , enabled items return "enabled".
the first question how .isenabled()
work type of element? q second question is, assuming webdriver won't , need xpath
, guess use this:
$x("//li[@class ='ng-scope disabled' , @id='actioncustard']") $x("//li[@class ='ng-scope' , @id='actionrhubarb']")
the first returns if given id disabled, second if given id enabled, built java method check given id element enabled or disabled. there easier way of doing this?
</li> <li id="actionrhubarb" class="ng-scope" on="deriveinvoketype(action)" ng-switch="" ng-class="{'disabled': false}" ng-repeat="action in getactionlist()"> <!-- ngswitchwhen: link_dynamic --> <!-- ngswitchwhen: no_invoke_permission --> <!-- ngswitchdefault: --> <a class="ng-scope ng-binding" ng-click="doaction(action)" ng-switch-default="" href=""></a> </li> <li id="actioncustard" class="ng-scope disabled" on="deriveinvoketype(action)" ng-switch="" ng-class="{'disabled': true}" ng-repeat="action in getactionlist()"> <!-- ngswitchwhen: link_dynamic --> <!-- ngswitchwhen: no_invoke_permission --> <!-- ngswitchdefault: --> <a class="ng-scope ng-binding" ng-click="doaction(action)" ng-switch-default="" href=""></a> </li>
the element disabled style pointer-events
set none
not considered .isenabled()
. if it's case evaluate css value returned .getcssvalue
:
boolean isenabled = !"none".equals(element.getcssvalue("pointer-events"));
or piece of javascript:
boolean isenabled = (boolean)((javascriptexecutor)driver).executescript( "return window.getcomputedstyle(arguments[0], null).getpropertyvalue('pointer-events') === 'none'" , element);
you determine state checking presence of class disable
, won't guarantee element disabled implemented style.
Comments
Post a Comment