Selenium C# Webdriver FindElements(Durch.LinkText) RegEx?
Ist es möglich, zu finden links auf einer Webseite durch die Suche Ihrer text mit einem Muster wie A-ZNN:NN:NN:NN
, wo N
eine einzelne Ziffer ist (0-9).
Ich verwendet habe, Regex in PHP zu drehen text in links, so Frage ich mich, ob es möglich ist, verwenden diese Art von filter in Selen mit C# zu finden-links, die alle gleich Aussehen, nach einem bestimmten format.
Habe ich versucht:
driver.FindElements(By.LinkText("[A-Z][0-9]{2}):([0-9]{2}):([0-9]{2}):([0-9]{2}")).ToList();
Aber das hat nicht funktioniert. Irgendwelche Ratschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In einem Wort, Nein, keine
FindElement()
Strategien zu unterstützen ist die Verwendung regulärer Ausdrücke für die Suche nach Elementen. Der einfachste Weg, dies zu tun wäre, umFindElements()
zu finden, alle links auf der Seite, und Ihre.Text
- Eigenschaft des regulären Ausdrucks.Beachten Sie aber, dass, wenn Sie auf den link navigiert zu einer neuen Seite in der gleichen browser-Fenster (also, nicht, öffnen Sie ein neues browser-Fenster, wenn Sie auf den link klicken), müssen Sie erfassen den genauen Wortlaut, alle links, die Sie möchten, klicken Sie auf zur späteren Verwendung. Ich erwähne dies, weil, wenn Sie versuchen, um zu halten auf die Referenzen zu den Elementen, die sich während Ihrer ersten
FindElements()
nennen, Sie werden abgestanden, nachdem Sie auf die erste. Wenn dies Ihr Szenario ist, könnte der code wie folgt Aussehen:Nicht mit regex zu Parsen von Html.
Verwenden htmlagilitypack
Befolgen Sie diese Schritte:
Schritt1 Verwenden
HTML PARSER
extrahiert alle links, die von der bestimmten Webseite, und speichern Sie es in eine Liste.Step2 Verwenden Sie diesen regulären Ausdruck für alle Verknüpfungen in der Liste
Schritt 3 bekommen Sie Ihre gewünschten links.