Chrome에서 XPath를 얻는 방법이 있습니까?


346

YQL과 함께 사용하려는 웹 페이지가 있습니다. 그러나 특정 항목의 XPath가 필요합니다. Chrome의 디버그 도구 영역에서 볼 수 있지만 해당 XPath를 복사하는 방법은 없습니다.

전체 XPath를 복사하는 방법이 있습니까?


2
Chrome 외에도 Firefox를 설치하려는 경우 xpather 확장을 사용할 수 있습니다 .
Adrian Grigore 2018 년

4
그가 Firefox를 기꺼이 설치하려는 경우, 이미 Firebug에 빌드되어 있습니다.
Verhogen

2
@verhogen : 거의 매일 Firebug를 사용하고 있지만이 사실을 알지 못했습니다. 다른 사람이 더 많은 정보에 관심이있는 경우 여기에 있습니다 : blog.browsermob.com/2009/04/…
Adrian Grigore

또한 이것을 높이고 있습니다 .... [Ctrl + Shift + X] 바로 가기 키를 누르거나 키보드의 검은 색 "X 경로"버튼 (렌치 버튼으로)을 클릭 할 때 Chrome의 Xpath 도우미가 제대로 작동하지 않습니다. 페이지에 JS 오류가있는 경우 JS 콘솔. 그리고 거기에 Chrome에 대한 다른 좋은 부가 기능을 찾을 수 없었습니다. Mozilla 용 "XPath Checker"추가 기능을 다운로드하지 마십시오. 해당 부가 기능과 관련된 문제도 발견했습니다. Firefox가 열려있는 동안 (다른 브라우저가 아닌) "XPather"를 다운로드하여 다운로드하십시오. "XPather"마우스 오른쪽 버튼으로 요소를 사용하고 "XPather에서 표시"를 선택하십시오
MacGyver

이제 Chrome에는 "XPather"확장명도 있습니다. 매우 좋다고 생각합니다. 창을 활성화하려면 Alt-'x '를 누르십시오. xpath를 입력하고 일치하는 결과를 볼 수 있습니다. 일치하는 결과의 표시는 매우 깔끔합니다.
gm2008

답변:


555

$xChrome 자바 스크립트 콘솔에서 사용할 수 있습니다 . 확장이 필요하지 않습니다.

전의: $x("//img")

또한 웹 관리자의 검색 창에는 xpath가 허용됩니다.


2
니스-이것이 원래의 질문에 대한 대답인지 확실하지 않지만. 그것에 대해 어떻게 알았습니까? 콘솔에 다른 유사한 기능이 있는지 궁금합니다.
huyz

4
Chrome에서 대부분의 Firebug 명령 행 명령을 복사 했다고 생각
huyz

99
그는 "xpath로 어떻게 선택합니까?"보다는 "요소에 대한 xpath 문자열을 얻는 방법?"을 묻고있었습니다. 그렇지 않습니까?
Max Williams

3
어떻게 Ctrl+Space공개하지 않는지 흥미 롭습니다 $x. 입력 만하면 $x달성 방법을 알 수 있으므로 OP는 원하는 것을 달성하는 방법을 결정할 수 있어야합니다. 예를 들어; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
Alasdair

5
@huyz-비슷한 기능이 있습니다. developers.google.com/chrome-developer-tools/docs/console을 참조하십시오 . $ 0가 특히 유용합니다. DOM 도구에서 마지막으로 선택한 요소입니다. $ ($ 0)은 jQuery 객체로 만듭니다 (jQuery를 사용할 수있는 경우). 또한 기사에는 클립 보드에 복사하는 copy ($ 0)가 언급되어 있지 않습니다. (덧붙여, 나는 내가 콘솔에서 뭔가 다른 그 변수를 사용하려고했기 때문에 그냥 $ X를 발견하고,이 스레드를 발견했다.)
나단 긴

245

노드를 마우스 오른쪽 버튼으로 클릭하십시오 => "XPath 복사"


19
이것은 xpath를 얻는 가장 부서지기 쉬운 방법입니다. 내용이 변경 될 때 깨질 가능성이 높습니다
Juan Mendes

8
@JuanMendes 대안은 무엇입니까?
Nate

9
@Nate 문서가 변경 될 때 XPath가 계속 작동하게하려면 쉬운 대안이 없습니다. 당신은 그것에 대해 생각하고 XPath에 불필요한 정보를 추가하지 마십시오. 경험상 XPath가 길수록 다른 컨텍스트에서 작동 할 가능성이 줄어 듭니다.
Juan Mendes

이것은 페이지의 고유 한 요소에 대한 실제 XPath를 제공하지 않습니다. 꽤 어려울 것입니다.
CJ7

1
Google 크롬의 새 버전에서는 노드를 마우스 오른쪽 버튼으로 클릭하고 복사 옵션으로 이동 한 XPath 항목 복사를 선택해야합니다.
Omid Nasri

92

위의 모든 대답은 여기에 맞습니다. 스크린 샷도 다른 방법입니다.

Chrome에서 :

  1. xpath를 찾으려는 항목에서 "검사"를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 콘솔에서 강조 표시된 영역을 마우스 오른쪽 버튼으로 클릭하십시오.
  3. xpath 복사로 이동

여기에 이미지 설명을 입력하십시오


24

XPath 헬퍼 확장은 필요한 것을 수행합니다 : https://chrome.google.com/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl


누구든지 우분투에서 키보드 명령을 알고 있습니까? crtl-shift-x와 command-shift-x는 아무것도하지 않는 것 같습니다
xiatica

1
@xiatica, 당신은 새로운 / 새로 고침 탭에서 시도 했습니까? 확장은 설치 전에 열린 탭에서 작동하지 않습니다. 이러한 탭을 새로 고쳐야합니다.
asadovsky

13

크롬에는 확장 기능이 필요 없습니다. xpath를 원하는 요소를 마우스 오른쪽 단추로 클릭하고 "요소 검사"를 클릭 한 다음 다시 검사기 내부에서 요소를 마우스 오른쪽 단추로 클릭하고 "Xpath 복사"를 클릭하십시오.


11
이 방법은 작년에 게시 된 이전 답변에서 이미 언급되었습니다 : stackoverflow.com/a/11087358/938089
Rob W

12

Chrome은 기본 제공되는 " Chrome DevTools " 라는 기본 제공 디버깅 도구를 제공합니다. 여기에는 타사 확장 프로그램없이 XPath / CSS 선택기를 평가하거나 확인할 수있는 편리한 기능이 포함되어 있습니다.

이것은 두 가지 접근 방식으로 수행 할 수 있습니다.

요소 패널에서 검색 기능을 사용하여 XPath / CSS 선택기를 평가하고 DOM에서 일치하는 노드를 강조 표시하십시오. 콘솔 패널에서 $ x ( "some_xpath") 또는 $$ ( "css-selectors") 토큰을 실행하면 평가 및 유효성 검사가 모두 수행됩니다.

요소 패널에서

  1. F12를 눌러 Chrome DevTools를 엽니 다.

  2. 요소 패널은 기본적으로 열려 있어야합니다.

  3. 패널에서 DOM 검색을 사용하려면 Ctrl + F를 누르십시오.

  4. 평가할 XPath 또는 CSS 선택기를 입력하십시오.

  5. 일치하는 요소가 있으면 DOM에서 강조 표시됩니다. 그러나 DOM 내에 일치하는 문자열이 있으면 유효한 결과로 간주됩니다. 예를 들어 CSS 선택기 헤더는 요소 만 일치하는 대신 단어 헤더를 포함하는 모든 (인라인 CSS, 스크립트 등)과 일치해야합니다.

여기에 이미지 설명을 입력하십시오

콘솔 패널에서

  1. F12를 눌러 Chrome DevTools를 엽니 다.

  2. 콘솔 패널로 전환하십시오.

  3. $x(".//header")평가하고 확인하려는 XPath를 입력하십시오 .

  4. $$("header")평가하고 확인하려는 CSS 선택기를 입력하십시오 .

  5. 콘솔 실행에서 반환 된 결과를 확인하십시오.

요소가 일치하면 목록에 반환됩니다. 그렇지 않으면 빈 목록 []이 표시됩니다.

$x(".//article")
[<article class="unit-article layout-post">…</article>]

$x(".//not-a-tag")
[ ]

XPath 또는 CSS 선택기가 유효하지 않은 경우 예외는 빨간색 텍스트로 표시됩니다. 예를 들면 다음과 같습니다.

$x(".//header/")
SyntaxError: Failed to execute 'evaluate' on 'Document': The string './/header/' is not a valid XPath expression.

$$("header[id=]")
SyntaxError: Failed to execute 'querySelectorAll' on 'Document': 'header[id=]' is not a valid selector.

10

모든 요소의 xpath를 찾는 간단한 공식을 알려주세요.

1- 브라우저에서 사이트 열기

2- 요소를 선택하고 마우스 오른쪽 버튼으로 클릭하십시오

3- 클릭 요소 검사 옵션

4- 선택된 HTML을 마우스 오른쪽 버튼으로 클릭

5-xpath를 복사하는 옵션을 선택하십시오 필요할 때마다 사용하십시오

이 비디오 링크가 도움이 될 것입니다. http://screencast.com/t/afXsaQXru

참고 : xpath의 고급 옵션을 사용하려면 HTML의 정규식 또는 패턴을 알아야합니다.


3
이를 테스트하기 위해 크롬 콘솔을 사용하고이 찬성 투표 할 않았다 $x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
Cagatay Ulubay에게

8

xpathOnClick 당신이 찾고있는 것입니다 : https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo

그러나 xpath를 얻으려면 실제로 세 번의 클릭이 필요합니다.


크롬 12.0.742.124와 함께 우분투 10.04에서 작동하지 않는 것으로 보이지만 xpath 아이콘을 클릭 한 다음 페이지를 클릭하면 (xpath 팝업을 처음으로 닫음) 페이지 요소를 클릭하여 js 콘솔에 xpath를 표시하십시오 ) .... 콘솔에 아무것도 나타나지 않습니다. 플러그인 사이트에서 테스트
xiatica

8

크롬의 최신 업데이트로 이제 요소 관리자에서 요소를 클릭하고 XPath를 클립 보드에 복사 할 수 있습니다.


5

예를 들어 Chrome의 경우 :

  1. XPath를 찾으려고하는 항목에서 "inspect"를 마우스 오른쪽 단추로 클릭하십시오.
  2. HTML DOM에서 강조 표시된 영역을 마우스 오른쪽 단추로 클릭하십시오.
  3. 복사로 이동하여 'XPath 복사'를 선택하십시오.
  4. 위의 단계가 끝나면 DOM에서 요소의 절대 XPath를 얻습니다.
  5. DOM을 변경하더라도 여전히 XPath가 요소를 찾을 수 있기 때문에 XPath를 상대적으로 변경하도록 변경할 수 있습니다.

ㅏ. 이렇게하려면 브라우저의 '요소'패널을 열어 CTRL + F를 누르고 XPath를 붙여 넣으십시오.

비. 다음 예에 설명 된대로 변경하십시오.

절대 xpath = // * [@ id = "app"] / div [1] / header / nav / div [2] / ul / li [2] / div / button

관련 xpath = // div // nav / div [2] / ul / li [2] / div / button

변경할 때 :

  1. XPath가 DOM 내에서 고유한지 확인하십시오.
  2. 여전히 웹 요소는 DOM과 웹 페이지에서 선택됩니다.

3

xpath를 원하는 요소를 마우스 오른쪽 버튼으로 클릭하면 복사 할 메뉴 항목이 표시됩니다. OP가 자신의 게시물을 만들었을 때 존재하지 않았을 수도 있지만 지금은 확실합니다.


2

Firefox의 Firebug에서는 검사 후 요소를 마우스 오른쪽 버튼으로 클릭하고 XPath 복사를 선택할 수 있습니다. ChromYQLip이 원활하게 작동하지 못했습니다.


1

웹 페이지에서 마우스 오른쪽 버튼을 클릭하면 상대 XPath를 동적으로 생성하는 Chrome 웹 확장 TruePath 를 사용하여 모든 XPath를 메뉴 항목으로 표시 할 수 있습니다.


0

약간 OT이지만 유용 할 수 있습니다. Mac Chrome의 경우 개발 도구 패널의 검색 상자에서 xpath를 복사 할 수 없지만 (복사 노드를 HTML로 가져옴) 텍스트를 외부 편집기로 끌어서 놓을 수 있습니다.


0

나는 거의 모든 사용 가능한 확장을 시도했으며 아래 중 가장 좋은 것을 발견했습니다.

ChroPath 확장 링크

FirePath와 마찬가지로이 확장은 검사를 클릭 할 때 Xpath를 직접 제공합니다.

여기에 이미지 설명을 입력하십시오


0

를 눌러 Cntl + Shift + C
당신이 얻을하고자하는 요소를 선택 XPath클릭하여
right click콘솔에서 강조 표시된 부분을
copy->copy XPath

여기에 이미지 설명을 입력하십시오


-1

이 확장명을 사용하면 id 또는 class를 기반으로 xpath를 생성하는데, 이는 아마도 원하는 것입니다.

브라우저 아이콘을 클릭하면 페이지 오른쪽 모서리에 패널이 표시되고 검사 시작을 클릭 한 다음 요소를 클릭하여 xpath를 가져옵니다.

XPath 생성기


@robbyoconnor 블랙 박스 테스트 나 크롤링을 수행했다면 브라우저에서 생성 된 xpath가 그다지 안정적이지 않다는 것을 알고있을 것입니다.
ospider
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.