C# 我试图在每次构建之后找到一个具有动态生成的编号的元素

C# 我试图在每次构建之后找到一个具有动态生成的编号的元素,c#,selenium-webdriver,C#,Selenium Webdriver,我想验证一个图像。它被给出为 src="/Content/Images/connected-large.png?v=34r23". 在上面的src中,最后5个字母数字字符将在每次构建后动态更改 if (driver.FindElements(By.CssSelector("[src='/Content/Images/connected-large.png?v=34r23']")).Count == 0) { WriteFail("Message"); Assert.Fail()

我想验证一个图像。它被给出为

src="/Content/Images/connected-large.png?v=34r23".
在上面的
src
中,最后5个字母数字字符将在每次构建后动态更改

if (driver.FindElements(By.CssSelector("[src='/Content/Images/connected-large.png?v=34r23']")).Count == 0)
{
    WriteFail("Message");
    Assert.Fail();
}
我尝试了上面的验证,但由于动态生成的字母数字字符,在每次新构建之后,我都会更改它

如有任何建议,将不胜感激


提前感谢。

您可以使用XPath-contains/以开头

//img[contains(@src,'/Content/Images/connected-large.png?v=')]

if (driver.FindElements(By.xpath("//img[contains(@src,'/Content/Images/connected-large.png?v=')]")).Count == 0)
{
WriteFail("Message");
Assert.Fail();
}

您能在.config文件post build中推送生成号(假设是这样)并在代码中从那里提取它吗?并不是说这是一种很好的方法,而是……您的代码似乎无法验证这一点。它在寻找count==0。我不这么认为,因为该图像代表一种颜色,所以我们使用3种颜色进行标识。所以每次都会得到一个随机数。不,是的。如果该元素的计数等于零,那么它将失败。使用css作为
src*='/Content/Images/connected large.png'
不会有帮助吗?