0
votes

Selenium WebDriver - Comment trouver l'index de la ligne dans le tableau

Je veux trouver l'index de la ligne dans le tableau (10 lignes) par Selenium:

<table _ngcontent-c4="" class="table table-striped table-br" xpath="1">
<tr _ngcontent-c4="" plan-id="41220451" xpath="1">
<tr _ngcontent-c4="" plan-id="41220452" xpath="1">
<tr _ngcontent-c4="" plan-id="41220453" xpath="1">
<tr _ngcontent-c4="" plan-id="41220454" xpath="1">
<tr _ngcontent-c4="" plan-id="41220455" xpath="1">
<tr _ngcontent-c4="" plan-id="41220456" xpath="1">
<tr _ngcontent-c4="" plan-id="41220457" xpath="1">
<tr _ngcontent-c4="" plan-id="41220458" xpath="1">
<tr _ngcontent-c4="" plan-id="41220459" xpath="1">
<tr _ngcontent-c4="" plan-id="41220460" xpath="1">

Le problème est de trouver la ligne avec plan_id = "41220457" (index = 7)

J'ai essayé d'utiliser plusieurs localisateurs, mais sans succès.


2 commentaires

Pouvez-vous montrer ce que vous avez essayé jusqu'à présent?


Le problème global est de cliquer sur le bouton dans le tableau. Je dois cliquer sur le bouton disons, la 7ème rangée. J'ai essayé ceci: driver.FindElement (By.XPath ("//.../ table [@ class = 'table table-striped table-br'] / tbody / tr [contains (@ plan-id, '41220457') ] / td [8] / div‌ [1] / bouton [1] "). Cliquez sur ();


3 Réponses :


2
votes

Laissez rechercher toutes les lignes du tableau sous forme de liste

var table = chrome.FindElement(By.TagName("table"));
var tr = table.FindElements(By.TagName("tr"));


2 commentaires

Ok, et puis, comment trouver l'index de cette ligne ?


for (int i = 0; i



0
votes

RÉSOLU par ceci: driver.FindElement (By.XPath ("/ html [1] / body [1] / sk-app [1] / sk-internal-template [1] / div [1] / div [3] / div [1] / jhi-plan [1] / div [2] / div [1] / div [1] / table [1] / tbody [1] / tr [contient (@ plan-id, '"+ plan_id + "')] / td [8] / div [1] / bouton [1] / span [1]")). Cliquez sur ();


0 commentaires

0
votes

Vous pouvez simplifier le code avec ceci ci-dessous.

document.evaluate("//table[@xpath='1']//tr[@plan-id='41220457']/preceding-sibling::tr", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotLength+1

Si vous n'avez qu'un seul bouton dans la colonne 8, vous pouvez simplifier davantage la ligne comme ci-dessous.

driver.FindElement(By.XPath("//table[@xpath='1']//tr[contains(@plan-id, '" + plan_id + "')]/td[8]//button/span[1]")).Click();

Btw, si quelqu'un veut obtenir le numéro d'index tel que publié dans la requête d'origine, vous pouvez exécuter le javascript ci-dessous en utilisant l'instance du pilote.

driver.FindElement(By.XPath("//table[@xpath='1']//tr[contains(@plan-id, '" + plan_id + "')]/td[8]/div[1]/button[1]/span[1]")).Click();

Capture d'écran:

 entrez la description de l'image ici '


0 commentaires