2016-04-26 5 views
0

Ich versuche, eine Schaltfläche in angularjs zu identifizieren. Der HTML-Code ist unten platziert. Wie unterscheide ich diese Schaltflächen mit Selen? Ich verwende Robotframework für die Automatisierung, aber es spielt keine Rolle, solange jemand bei der Identifizierung dieser Elemente/Schaltflächen mit CSS-Selektor oder Xpath oder anderen Mitteln helfen kann, sie eindeutig zu identifizieren.Angularjs: Identifizieren einer Schaltfläche in Selen

Ich habe 4 Tasten Herr Frau Frau Andere

Html 4 wie unten

<button ng-repeat="choice in question.choices" ng-class="{selected: isSelected(choice.value)}" ng-click="selectAnswer(choice)" tabindex="1" class="ng-scope"><span fittext=".8" fittext-max="16" class="ng-scope ng-binding" style="display: inline-block; white-space: nowrap; line-height: 1; font-size: 16px;">Mr</span></button> 

<button ng-repeat="choice in question.choices" ng-class="{selected: isSelected(choice.value)}" ng-click="selectAnswer(choice)" tabindex="1" class="ng-scope"><span fittext=".8" fittext-max="16" class="ng-scope ng-binding" style="display: inline-block; white-space: nowrap; line-height: 1; font-size: 16px;">Mrs</span></button> 

<button ng-repeat="choice in question.choices" ng-class="{selected: isSelected(choice.value)}" ng-click="selectAnswer(choice)" tabindex="1" class="ng-scope"><span fittext=".8" fittext-max="16" class="ng-scope ng-binding" style="display: inline-block; white-space: nowrap; line-height: 1; font-size: 16px;">Ms</span></button> 

<button ng-repeat="choice in question.choices" ng-class="{selected: isSelected(choice.value)}" ng-click="selectAnswer(choice)" tabindex="1" class="ng-scope"><span fittext=".8" fittext-max="16" class="ng-scope ng-binding" style="display: inline-block; white-space: nowrap; line-height: 1; font-size: 16px;">Other</span></button> 
+0

Html 4 wie unten Mr Nagendra

+0

Nagendra

+0

Nagendra

Antwort

0

RobotFramework Weg, um eine dieser Schaltflächen zu finden würde b e

Click Button xpath=//span[text()="Mr"]/parent::button 
+0

Danke Jim .... This funktioniert ... danke hoaps ... gibt es eine Option, CSS-Selektor anstelle von xpath zu verwenden? – Nagendra

+0

Sie können alle 'buttons' (' css = button') auswählen und sie dann durchlaufen, bis Sie die gewünschte finden, aber dies ist eine sehr schlechte Idee. CSS kann nicht verwendet werden, um nach Element zu finden Text – jim

+0

ok..thank you ... – Nagendra

1

Sie können die <span> in den Tasten durch den Text identifizieren und klicken Sie darauf

driver.findElement(By.xpath("//span[text()='Mr']")); 
driver.findElement(By.xpath("//span[text()='Mrs']")); 
//... 
+0

Sie haben eine Spanne, keine Schaltfläche identifiziert – jim

+0

@jim Ja, ich weiß. Ich Refraze meine Antwort. – Guy

+0

danke Guy, Jim ... – Nagendra

-1
// first take each button inside the list 
List<WebElement> myButton = driver.findElements(By.className("ng-scope")); 
System.out.println("Size of the button the webpage is : " + myButton.size()); 
// now you can click button on the basis of index like below 

myButton.get(0).click(); // for first button 
myButton.get(1).click(); // for second button 
myButton.get(2).click(); // for third button 
myButton.get(3).click(); //For Forth Button 
+0

'ng-scope' ist eine sehr schlechte Art der Auswahl etwas in einer Angular App – jim

+0

Danke Bhargav ... – Nagendra