2017-07-05 37 views
0

我是新來這個,我想了解硒的使用和XPathXPath不承認正則表達式的部分

string exp = "//*[@id=\"g_1_bHwVovAN\"]/td[2]"; 
var dateTime = chromeDriver.FindElementsByXPath(exp); 

有了這個代碼,我只能拿1元。我該如何改變這個「bHwVovAN」部分,以便能夠訪問網站上的所有元素。

string exp = "//*[@id=\"g_1_[^[0-9+]]\"]/td[2]"; 
var dateTime = chromeDriver.FindElementsByXPath(exp); 

我試圖使用正則表達式,但它沒有奏效。它不承認正則表達式部分。另外,我看了其他帖子,試圖使用火柴,也沒有工作。我該如何解決它?

如果我沒有寫清楚和正確的方式,我也是英語新手。對不起

+1

要使用正則表達式,也不需要使用'FN:matches'?否則,正在進行等式匹配,並且:*不會通過相等*匹配。像:https://stackoverflow.com/a/10404321/23354。作爲一個完整的猜測,也許:'string exp =「// * [matches(@id,'g_1 _ [^ [0-9 +]]')]/td [2]」;'? –

+0

@MarcGravell我試圖使用該模板,但它沒有工作[鏈接] https://stackoverflow.com/questions/21405267/xpath-using-regex-in-contains-function –

回答

1

XPath 2.0中有一個matches()函數可以解決你的問題,但selenium不支持這個XPath版本。

你可以試試下面以配合id屬性與"g_1_"開始元素:

string exp = "//*[starts-with(@id,\"g_1_\")]/td[2]"; 
+0

非常感謝你!完美的作品。 –