在 C# 中使用 Selenium 通过部分 ID 查找元素。

seleniumautomation testingtesting tools更新于 2026/2/3 7:07:17

我们可以使用 C# 中的 Selenium 通过部分 ID 查找元素。这可以通过使用定位器 CSS 和 xpath 来识别元素来实现。正则表达式用于查找部分匹配的元素。

让我们研究一下值为 gsc−i−id1 的元素的 id 属性。

在 xpath 中,我们使用 contains() 函数进行部分匹配。因此,这里的 xpath 表达式应为 //*[contains(@id, 'id')].这是因为子文本 id 位于文本 gsc−i−id1 中。我们也可以借助 starts−with() 函数。因此,xpath 表达式变为 //*[starts−with(@id, 'gsc')],因为文本 gsc−i−id1 以子文本 gsc 开头。

在 CSS 中,我们使用 * 符号进行部分匹配。因此,此处的 CSS 表达式应为 input[id*='id']。这是因为子文本 id 位于文本 gsc-i-id1 中。我们也可以借助 ^ 符号。因此,CSS 表达式变为 input[id^='gsc'],因为文本 gsc−i−id1 以子文本 gsc 开头。此外,我们还可以使用 $ 符号。因此,xpath 表达式变为 input[id$='id1'],因为文本 gsc−i−id1 以子文本 id1 结尾。

为了实现,我们将使用 NUnit 框架。

示例

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System;
namespace NUnitTestProject1{
   public class Tests{
      String u =
      "https://www.tutorialspoint.com/about/about_careers.htm";
      IWebDriver d;
      [SetUp]
      public void Setup(){
         //creating object of FirefoxDriver
         d = new FirefoxDriver();
      }
      [Test]
      public void Test1(){
         d.Navigate()
         .GoToUrl(u);
          // CSS 中用 * 标识元素
         IWebElement l
         = d.FindElement(By.CssSelector("input[id*='id']"));
         l.SendKeys("C#");
          // 获取输入值
         Console.WriteLine(l.GetAttribute("value"));
          l.Clear();
          // 在 CSS 中使用 ^ 标识元素
         IWebElement m
          = d.FindElement(By.CssSelector("input[id^='gsc']&"));
         m.SendKeys("NUnit");
          // 获取输入值
         Console.WriteLine(m.GetAttribute(&"value"));
         m.Clear();
          // 在 CSS 中用 $ 标识元素
         IWebElement n
          = d.FindElement(By.CssSelector(&"input[id$='id1']"));
          n.SendKeys("Selenium");
          // 获取输入值
         Console.WriteLine(n.GetAttribute("value"));
         n.Clear();
          // 在 xpath 中识别包含元素
         IWebElement o = d.
         FindElement(By.XPath("//input[contains(@id,'id')]"));
         o.SendKeys("Java");
         //获取输入值
         Console.WriteLine(o.GetAttribute("value"));
         o.Clear();
           // 使用 xpath 中的 starts-with() 识别元素
         IWebElement p = d.
         FindElement(By.XPath("//input[starts−with(@id,'gsc')]"));
         p.SendKeys("Python");
         //获取输入值
         Console.WriteLine(p.GetAttribute("value"));
         p.Clear();
      }
      [TearDown]
      public void close_Browser(){
         d.Quit();
      }
   }
}

输出

点击运行所有测试 −

点击打开此结果的更多输出链接 −

我们应该得到测试结果和标准输出。


相关文章