簡體   English   中英

如何處理 selenium c# 中的 web 表

[英]How to handle web table in selenium c#

在我的應用程序中,我必須在 webtable 上聲明名稱,但我無法這樣做。

下面是我的 HTML 代碼的圖像,我無法在此處復制粘貼。

在此處輸入圖像描述

我必須從 web 表中獲得名稱:“Robert Brits”,並且想要斷言相同。

我嘗試了以下邏輯:

 IWebElement tableElement = driver.FindElement(By.Xpath("//table[@id='globalSearchTable']"));
            IList<IWebElement> tableRow = tableElement.FindElements(By.TagName("tr"));
            IList<IWebElement> rowTD;
            foreach (IWebElement row in tableRow)
            {
                rowTD = row.FindElements(By.TagName("td"));
                {
                  _____
                  }
             }

我不確定如何進一步完成代碼。 誰能幫幫我? 提前致謝

你可以做這樣的事情......

    var value = "Robert Brits";

    var table = driver.FindElement(By.Xpath("//table[@id='globalSearchTable']")
    foreach (var tr in table.FindElements(By.TagName("tr")))
    {
        var tds = tr.FindElements(By.TagName("td"));
        for (var i = 0; i < tds.Count; i++)
        {
           if (tds[i].Text.Trim().Contains(value))
         {
               var test = tds[i].Text.Trim();
                Assert.IsTrue(test.Contains(value));
                break;
         }

        }
    }

我知道這與條件語句看起來很奇怪,但我把它留在那里是有原因的。 大多數表都有很多列。 因此,您可能希望 if 語句查找名稱、帳號、email 等並停止。 然后您可能需要在該行的左側或右側 go 以獲取文本或單擊鏈接。 在此示例中,您可以調用 tds[i] 作為搜索條件,然后使用 tds[i-2] 到 go tds[i] 左側的兩列或使用 tds[i+3] 到 go 右側的三列的 tds[i]。

如果您只想驗證該值,請嘗試遵循xpath

IWebElement tableElement = driver.FindElement(By.Xpath("//table[@id='globalSearchTable']/tbody/tr[1]/td[3]"));
Assert.AreEqual(tableElement.Text,"Robert Brits")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM