Ich habe das folgende angular.js
auf einer Seite. Die angezeigten Artikel sind angular.js
Li
Artikel. Einer ist ausgegraut, der andere ist aktiviert. Wenn ich die Selenium webdriver
Methode .isEnabled()
verwende, geben sowohl die ausgegrauten als auch die aktivierten Elemente "aktiviert" zurück.Selenium webdriver, wie man den aktivierten Status eines angularjs Li-Elements erhält
Die erste Frage ist, wie bekomme ich .isEnabled()
, um mit dieser Art von Element zu arbeiten? Q Die zweite Frage ist, unter der Annahme, WebDriver wird es nicht tun, und ich muss xpath
, ich denke, ich so etwas wie diese verwenden:
$x("//li[@class ='ng-scope disabled' and @id='actionCUSTARD']")
$x("//li[@class ='ng-scope' and @id='actionRHUBARB']")
Der erste kehrt etwas nur, wenn die angegebene ID deaktiviert ist, die 2. Nur wenn die angegebene ID aktiviert ist, könnte dies in eine Java-Methode eingebaut werden, um zu überprüfen, ob das Element für eine bestimmte ID aktiviert oder deaktiviert ist. Gibt es einen einfacheren Weg, dies zu tun?
</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>