Główną różnicą jest to, w jaki sposób stabilny jest struktura dokumentu kierować:
XPath jest dobrym językiem zapytań kiedy sprawy struktury i/lub jest stabilny. Zwykle określasz ścieżkę, warunki, dokładne przesunięcie ... jest to również dobry język zapytań do pobrania zestawu podobnych obiektów i dlatego ma on bliski związek z XQuery. Tutaj dokument ma stabilną strukturę i musisz odzyskać powtarzające się/podobne sekcje: selektory CSS lepiej pasują do arkuszy stylów CSS. Nie obchodzi ich struktura dokumentu, ponieważ to bardzo się zmienia. Pomyśl o jednym arkuszu stylów CSS zastosowanym do wszystkich stron HTML witryny. Zawartość i struktura każdej strony jest inna. Tutaj selektory CSS są lepsze z powodu tej zmieniającej się struktury. Zauważysz, że dostęp jest bardziej oparty na tagach. Większość składni CSS określa zestaw elementów, atrybutów, id, klas ... i nie tyle ich strukturę. Tutaj musisz zlokalizować sekcje, które nie mają wyraźnej lokalizacji w strukturze dokumentu, ale są oznaczone pewnymi atrybutami.
Aktualizacja Po bliższym przyjrzeniu na swoje pytanie zdałem sobie sprawę, że jesteś bardziej zainteresowany w obecnej implementacji, a nie charakter języków zapytań. W takim przypadku nie mogę udzielić ci odpowiedzi, której szukasz. Mogę tylko przypuszczać, że powodem jest to, że jeden jest bardziej zależny od struktury niż drugi.
Na przykład w XPath należy śledzić strukturę dokumentu, nad którym pracujesz. Z drugiej strony selektory CSS są wyzwalane, gdy pojawia się konkretny znacznik i zwykle nie ma znaczenia, co było przed nim.Mogę sobie wyobrazić, że znacznie łatwiej będzie zaimplementować algorytm selektora CSS, który działa podczas czytania dokumentu, podczas gdy XPath ma więcej przypadków, gdy naprawdę potrzebujesz pełnego dokumentu i/lub ścisłego śledzenia tego, co czyta (ponieważ historia i tło tego, co czytasz, jest ważniejsze)
Teraz nie bierz mnie zbyt poważnie na temat mojej aktualizacji. Zgaduję tylko tutaj, ponieważ miałem pewne doświadczenie w analizie języka, ale w rzeczywistości nie mam doświadczenia z tymi, które zostały zaprojektowane do analizowania danych.
Zastanawiasz się, jakie różnice występują ogólnie lub w szczególności, gdy są używane w Selenie? – btlachance
Zastanawiam się nad różnicami w ogóle. (Właściwie nigdy nie używałem Selenium.) –