在 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();
}
}
}
输出
点击运行所有测试 −

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

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


