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.
3 Réponses :
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"));
Ok, et puis, comment trouver l'index de cette ligne
for (int i = 0; i
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 ();
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:
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 ();