【问题标题】:Selenium WebDriver - How to find the index of line in tableSelenium WebDriver - 如何在表中找到行的索引
【发布时间】:2019-12-30 00:56:22
【问题描述】:

我想通过 Selenium 查找表中行的索引(10 行):

<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">

问题是找到plan_id ="41220457" (index = 7)所在的行

我尝试使用多个定位器,但没有成功。

【问题讨论】:

  • 你能展示一下到目前为止你做了什么吗?
  • 全局问题是点击表格中的按钮。我必须单击第 7 行上的按钮。我试过这个: driver.FindElement(By.XPath("//.../table[@class='table table-striped table-br']/tbody/tr[contains(@plan-id,'41220457') ]/td[8]/div[1]/button[1]").Click();

标签: c# html selenium


【解决方案1】:

让所有表格行作为列表查找

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

【讨论】:

  • 好的,那么,如何找到这一行的索引?
  • for (int i = 0; i
【解决方案2】:

由此解决: 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[contains(@plan-id, '" + plan_id + "')]/td[8]/div[1]/button[1]/span[1]")).Click();

【讨论】:

    【解决方案3】:

    您可以使用下面的代码来简化代码。

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

    如果第 8 列中只有一个按钮,则可以进一步简化该行,如下所示。

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

    顺便说一句,如果有人想获取原始查询中发布的索引号,那么您可以使用驱动程序实例运行以下 javascript。

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

    截图:

    '

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签