我在這裏有以下問題: 我想要使用Watin的Find.ByText從網頁中獲取元素。但是,我沒有在C#中使用正則表達式。C#Watin Find.ByText與正則表達式
該聲明將返回所需的元素。
return this.Document.Element(Find.ByText("781|262"));
當我嘗試使用正則表達式時,我得到整個頁面。
return this.Document.Element(Find.ByText(new Regex(@"781\|262")));
我試圖讓這個元素:
<td>781|262</td>
我也試過
return this.Document.Element(Find.ByText(Predicate));
private bool Predicate(string s)
{
return s.Equals("781|262");
}
以上的作品,雖然這並不:
private bool Predicate(string s)
{
return new Regex(@"781\|262").IsMatch(s);
}
我現在意識到,在謂詞s是整個頁面內容。我想這個問題是與Document.Element。 任何幫助表示感謝,謝謝。
在C#中結束,@符號意味着你的字符串是逐字字符串。 IE中,您不需要在字符串內部掃描特殊字符,如文件名「C:\\ folder \\ mifile」。txt「vs @」C:\ folder \ mifile.txt「 – Oscar 2014-09-01 15:01:21
謝謝!我只是試過\\ |而不是@,仍然沒有運氣 – Zackline 2014-09-01 15:02:57
也許..如果你使用逐字字符串文字而忘記你沒有需要花費特殊字符,這些花斑字符將被視爲正則表達式的一部分,什麼不明顯是你想要的...... – Oscar 2014-09-01 15:06:38