我在HTML中的含义是:
<span class="class1 class2"></span>
我尝试使用以下方法确认此跨度的存在:
public bool HasSpan(string @class)
{
return _ie.Span(Find.ByClass(@class)).Exists;
}
我尝试将不同的字符串值传递给方法:&#34; class1&#34;,&#34; class2&#34; &#34; class1 class2&#34;和&#34; class2 class1&#34;,但似乎什么都没有用 - 我的测试找不到元素,即使它在那里。
任何想法为什么会发生这种情况?
答案 0 :(得分:3)
这有效:
Span sp = _ie.Span(Find.ByClass(p => p.Contains("class1")));
如果将字符串传递给方法ByClass
(或任何其他方法),则在元素的Class属性中搜索该确切的字符串,但如果使用其中一个重载方法,例如我在上面的代码中使用的那个,你可以在不同的场景上有更多的灵活性,比如你要求的场景。
在这种特殊情况下,我正在使用.Contains
方法,它允许我具有所需的灵活性,无论CLASS属性的值是什么,都可以使用它并使用字符串函数包含并在字符串中的某个位置搜索文本class1
。
p
是CLASS属性的内容(我使用名称p
,但你可以使用你需要的任何东西而你不必声明它,只是一种引用它的方法属性值,在这种情况下是一个字符串)而p
是一个字符串,所有可用于字符串的函数都可以随时使用,你可以像你想要的那样疯狂,比如.StartsWith
.EndsWith
,.ToUpper
,.ToLower
等