2017-10-16 6 views
0

Salut, je veux juste créer un chemin pour cliquer sur le bouton sur ma stie en utilisant le chromedriver au sélénium. Le code bloc HTML ressemble:C# sélénium chrome-webdrive écrire le chemin correct

<tr ng-repeat="row in rowCollection" ng-class="{ &quot;error-row&quot;: row.errorMessage }" ng-style="vm.getColor(row)" class="ng-scope" style="background: rgb(255, 242, 255) none repeat scroll 0% 0%;"> 
    <td class="ng-binding">Wylaczenie nadan RDF</td><td class="ng-binding">WAITING_FOR_NOTIFICATION</td> 
    <td> 
     <a href="" ng-click="vm.showProcessDiagram(row.executor)" class="ng-binding">rfsSendingExecutor</a> 
    </td> 
    <td class="ng-binding">2017-09-06 11:14:12</td><td class="ng-binding">2017-09-06 11:14:13</td> 
    <td has-role="REQUEST" class="text-center"> 
    <!-- ngIf: row.inXml || row.outXml --> 
    <button ng-if="row.inXml || row.outXml" ng-click="vm.showXml(row)" title="Show" class="btn btn-xs ng-scope"><span class="fa fa-code"></span></button> 
    <!-- end ngIf: row.inXml || row.outXml --> 
    </td> 
    <td has-role="ERROR" class="text-center"><button ng-show="row.errorMessage" ng-click="vm.showError(row.errorMessage)" title="Show" class="btn btn-xs ng-hide"><span class="fa fa-search"></span></button></td> 
    <td class="text-center"> 
    <button ng-show="vm.enableCancel(row)" ng-click="vm.cancelTask(row.workItemId)" title="Cancel" class="btn btn-xs ng-hide"> 
     <span class="fa fa-ban text-warning"></span> 
    </button> 
    <button ng-show="vm.enableRepeat(row)" ng-click="vm.repeatTask(row.id)" title="Repeat" class="btn btn-xs ng-hide"> 
     <span class="fa fa-refresh text-success"></span> 
    </button> 
    <button ng-show="vm.enableRepeat(row)" ng-click="vm.repeatTaskWithParams(row.id)" title="Repeat with parameters" class="btn btn-xs ng-hide"> 
     <span class="fa fa-refresh text-warning"></span> 
    </button> 
    <button ng-show="vm.enableSkip(row)" ng-click="vm.skipTask(row.workItemId)" title="Skip" class="btn btn-xs"> 
     <span class="fa fa-angle-double-right text-success"></span> 
    </button> 
    </td> 
</tr> 

Je veux juste de cliquer exacly ce bouton:

<button ng-show="vm.enableSkip(row)" ng-click="vm.skipTask(row.workItemId)" title="Skip" class="btn btn-xs"> 
     <span class="fa fa-angle-double-right text-success"></span> 

J'essaie quelque chose comme ceci: Cela fonctionne bien et cliquez sur mon bouton:

drive.FindElement(By.XPath($"//tr[td='Wylaczenie nadan RDF']//button[@title='Skip']")).Click(); 

mais tout ce dont j'ai besoin est juste d'ajouter une autre valeur à ce chemin. Il devrait être comme ceci: Wylaczenie nadan RDF, et WAITING_FOR_NOTIFICATION et rfsSendingExecutor et enfin, lorsque ce chemin est correct, cliquez sur le bouton.

J'essaie quelque chose comme ceci:

drive.FindElement(By.XPath($"//tr[td='Wylaczenie nadan RDF'] AND tr[td='WAITING_FOR_NOTIFICATION'] AND tr[td='rfsSendingExecutor']//button[@title='Skip']")).Click(); 

mais cela ne fonctionne pas. Quelqu'un peut-il m'aider à écrire correctement ce chemin?

Répondre

0

Cela fonctionne sur le HTML fourni

By.XPath("//tr[td='Wylaczenie nadan RDF'][td='WAITING_FOR_NOTIFICATION'][td/a='rfsSendingExecutor']//button[@title='Skip']") 
+0

Merci beaucoup –