Szukam czegoś takiego:
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML
Potrzebuję uzyskać innerHTML elementów za pomocą JS (aby użyć go w Selenium WebDriver / Java, ponieważ WebDriver nie może go znaleźć), ale jak?
Mógłbym użyć atrybutu ID, ale nie wszystkie elementy mają atrybut ID.
[NAPRAWIONY]
Używam jsoup, aby zrobić to w Javie. To działa na moje potrzeby.
html
ibody
są zbędne, ponieważ DIV musi być potomkiem BODY (natychmiastowego lub głębszego), a BODY musi być dzieckiem HTML, więc pod warunkiem, że nie ma innych elementów DIV w dokumencie,//DIV[1]
powinien działać (chociaż jestem ładna zardzewiały na wyrażeniach XPath). Odpowiednikiem DOM jestdocument.getElementsByTagName('div')[1]
(a może0
).Odpowiedzi:
Możesz użyć
document.evaluate
:Jest standaryzowany w3 i w pełni udokumentowany: https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate
https://gist.github.com/yckart/6351935
Jest także świetne wprowadzenie do sieci deweloperów Mozilli: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#document.evaluate
Alternatywna wersja, wykorzystująca
XPathEvaluator
:Pokaż fragment kodu
źródło
XPathResult.FIRST_ORDERED_NODE_TYPE === 9
developer.mozilla.org/en-US/docs/…W Chrome Dev Tools możesz uruchomić:
źródło
Aby uzyskać coś takiego jak $ x z interfejsu wiersza polecenia chrome (aby wybrać wiele elementów), spróbuj:
Omówienie MDN pomogło: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
źródło
Możesz użyć document.evaluate w javascript, aby uruchomić wyrażenie XPath w DOM. Myślę, że jest obsługiwany w taki czy inny sposób w przeglądarkach z powrotem do IE 6.
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
Zamiast tego IE obsługuje selectNodes .
MSDN: https://msdn.microsoft.com/en-us/library/ms754523(v=vs.85).aspx
źródło
Zakładając, że Twoim celem jest opracowanie i przetestowanie zapytań xpath dla map ekranowych. Następnie użyj narzędzi programistycznych Chrome . Umożliwia to uruchomienie zapytania xpath w celu wyświetlenia dopasowań. Lub w przeglądarce Firefox> 9 możesz zrobić to samo z konsolą Web Developer Tools . We wcześniejszej wersji użyj x-path-finder lub Firebug .
źródło
Upewnij się, że używasz do tego odpowiedniego lokalizatora.
źródło
źródło
źródło
Aby przejść do rzeczy, możesz łatwo użyć xapth. Dokładny i prosty sposób na zrobienie tego za pomocą poniższego kodu. Prosimy postarać się o opinie. Dziękuję.
Dalsze odczyty - https://medium.com/@smeesheady/webdriver-javascriptexecutor-interact-with-elements-and-open-and-handle-multiple-tabs-and-get-url-dcfda49bfa0f
źródło