2017-10-16 2 views
0

J'ai une table qui a des colonnes et la dernière colonne a une image pour supprimer et il afficher supprimer la première confirmation.Comment sélectionner la ligne spécifique et cliquez sur Supprimer pour cette ligne

Je sais comment répondre à javascript rapide comme celui-ci

IAlert simpleAlert = driver.SwitchTo().Alert(); 
    simpleAlert.Accept(); 

Cependant, je ne sais pas comment supprimer l'une des lignes disponibles dans le tableau en cliquant sur l'image Supprimer

ici est l'image de suppression aspect balisage comme

<a id="delete34" href="delxxx?id=34" onclick="return prompt('del34')"><img src="img/delete_24.png" alt="delete" title="delete" width="24" height="24"/></a> 

le dernier numéro « 34 » est l'identifiant de la ligne et qui a généré dynamiquement alors comment je cible une ligne disponible et cliquez sur l'image supprimer?

+2

Pour être clair, vous voulez un moyen générique de cliquer sur le bouton de suppression sur une ligne dans le tableau. Est-ce exact? Si oui, comment envisagez-vous de choisir la rangée? – Haendler

+0

@Haendler Oui mon problème je ne trouve pas de toute façon cibler une ligne pour tester supprimer. Il n'y a aucune étiquette cachée d'identification dans la page et je ne peux pas la comprendre dehors – Wel

+0

Une URL que vous pourriez donner? – Kanak

Répondre

0

Dans votre code

IList<IWebElement> rowDeleteButtons = driver.findElements(By.XPath("//a[contains(@id,'delete')]"); 

rowDeleteButtons[0].Click(); 

devrait faire l'affaire. Comme l'identifiant de ligne n'est pas important, cela fonctionnera toujours si vous avez au moins une ligne.

+0

Je t'aime ... :) – Wel

+1

Si vous choisissez toujours le premier, utilisez '.FindElement()' et cliquez dessus, par ex. 'Driver.findElement (By.XPath ("// un [contient (@ id, 'supprimer')]") cliquez sur()..' – JeffC

+0

Ce n'est pas une vraie bonne approche Bien qu'il puisse fonctionner, findElement doit être utilisé pour simples, des éléments uniques et findElements pour plusieurs éléments, de sorte que votre code est explicite et reflète ce qu'il est en train de faire. 'est pour –