2017-07-05 2 views
0

Ich bin neu in diesem und ich versuche, die Verwendung von Selen und XPathXpath erkennt nicht regex Teile

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

Mit diesem Code zu verstehen, kann ich nur 1 Element. Wie kann ich diesen "bHwVovAN" -Teil ändern, damit ich alle möglichen Elemente auf der Website erreichen kann?

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

Ich habe versucht, Regex zu verwenden, aber es hat nicht funktioniert. Regex-Teile wurden nicht erkannt. Außerdem habe ich mir die anderen Beiträge angesehen und versucht, Übereinstimmungen zu verwenden, und auch nicht funktioniert. Wie kann ich es lösen?

Wenn ich nicht klar und richtig geschrieben habe, bin ich auch neu in Englisch. Leider

+1

Regex zu verwenden, die Sie nicht brauchen 'fn zu verwenden: matches'? Sonst macht is eine Gleichheitsübereinstimmung und: * das stimmt nicht über Gleichheit * überein. Wie: https://stackoverflow.com/a/10404321/23354. Als eine komplette Schätzung, vielleicht: 'string exp =" // * [stimmt überein (@id, 'g_1 _ [^ [0-9 +]]')]/td [2] "; –

+0

@MarcGravell Ich habe versucht, diese Vorlage zu verwenden, aber es hat nicht funktioniert [link] https://StackOverflow.com/Questions/21405267/xpath-using-regex-in-contains-Funktion –

Antwort

1

Es gibt eine matches() Funktion in XPath 2.0 die das Problem lösen würde, aber selenium diese XPath Version nicht unterstützt.

können Sie versuchen, unter Elemente mit id Attribut übereinstimmen, die mit "g_1_" beginnt:

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

Vielen Dank! Funktioniert perfekt. –

Verwandte Themen