YQL과 함께 사용하려는 웹 페이지가 있습니다. 그러나 특정 항목의 XPath가 필요합니다. Chrome의 디버그 도구 영역에서 볼 수 있지만 해당 XPath를 복사하는 방법은 없습니다.
전체 XPath를 복사하는 방법이 있습니까?
YQL과 함께 사용하려는 웹 페이지가 있습니다. 그러나 특정 항목의 XPath가 필요합니다. Chrome의 디버그 도구 영역에서 볼 수 있지만 해당 XPath를 복사하는 방법은 없습니다.
전체 XPath를 복사하는 방법이 있습니까?
답변:
$x
Chrome 자바 스크립트 콘솔에서 사용할 수 있습니다 . 확장이 필요하지 않습니다.
전의: $x("//img")
또한 웹 관리자의 검색 창에는 xpath가 허용됩니다.
Ctrl+Space
공개하지 않는지 흥미 롭습니다 $x
. 입력 만하면 $x
달성 방법을 알 수 있으므로 OP는 원하는 것을 달성하는 방법을 결정할 수 있어야합니다. 예를 들어; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
노드를 마우스 오른쪽 버튼으로 클릭하십시오 => "XPath 복사"
XPath 헬퍼 확장은 필요한 것을 수행합니다 : https://chrome.google.com/webstore/detail/hgimnogjllphhhkhlmebbmlgjoejdpjl
크롬에는 확장 기능이 필요 없습니다. xpath를 원하는 요소를 마우스 오른쪽 단추로 클릭하고 "요소 검사"를 클릭 한 다음 다시 검사기 내부에서 요소를 마우스 오른쪽 단추로 클릭하고 "Xpath 복사"를 클릭하십시오.
Chrome은 기본 제공되는 " Chrome DevTools " 라는 기본 제공 디버깅 도구를 제공합니다. 여기에는 타사 확장 프로그램없이 XPath / CSS 선택기를 평가하거나 확인할 수있는 편리한 기능이 포함되어 있습니다.
이것은 두 가지 접근 방식으로 수행 할 수 있습니다.
요소 패널에서 검색 기능을 사용하여 XPath / CSS 선택기를 평가하고 DOM에서 일치하는 노드를 강조 표시하십시오. 콘솔 패널에서 $ x ( "some_xpath") 또는 $$ ( "css-selectors") 토큰을 실행하면 평가 및 유효성 검사가 모두 수행됩니다.
요소 패널에서
F12를 눌러 Chrome DevTools를 엽니 다.
요소 패널은 기본적으로 열려 있어야합니다.
패널에서 DOM 검색을 사용하려면 Ctrl + F를 누르십시오.
평가할 XPath 또는 CSS 선택기를 입력하십시오.
일치하는 요소가 있으면 DOM에서 강조 표시됩니다. 그러나 DOM 내에 일치하는 문자열이 있으면 유효한 결과로 간주됩니다. 예를 들어 CSS 선택기 헤더는 요소 만 일치하는 대신 단어 헤더를 포함하는 모든 (인라인 CSS, 스크립트 등)과 일치해야합니다.
콘솔 패널에서
F12를 눌러 Chrome DevTools를 엽니 다.
콘솔 패널로 전환하십시오.
$x(".//header")
평가하고 확인하려는 XPath를 입력하십시오 .
$$("header")
평가하고 확인하려는 CSS 선택기를 입력하십시오 .
콘솔 실행에서 반환 된 결과를 확인하십시오.
요소가 일치하면 목록에 반환됩니다. 그렇지 않으면 빈 목록 []이 표시됩니다.
$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.
모든 요소의 xpath를 찾는 간단한 공식을 알려주세요.
1- 브라우저에서 사이트 열기
2- 요소를 선택하고 마우스 오른쪽 버튼으로 클릭하십시오
3- 클릭 요소 검사 옵션
4- 선택된 HTML을 마우스 오른쪽 버튼으로 클릭
5-xpath를 복사하는 옵션을 선택하십시오 필요할 때마다 사용하십시오
이 비디오 링크가 도움이 될 것입니다. http://screencast.com/t/afXsaQXru
참고 : xpath의 고급 옵션을 사용하려면 HTML의 정규식 또는 패턴을 알아야합니다.
$x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
xpathOnClick 당신이 찾고있는 것입니다 : https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbgjknhghhbo
그러나 xpath를 얻으려면 실제로 세 번의 클릭이 필요합니다.
예를 들어 Chrome의 경우 :
ㅏ. 이렇게하려면 브라우저의 '요소'패널을 열어 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
변경할 때 :
xpath를 원하는 요소를 마우스 오른쪽 버튼으로 클릭하면 복사 할 메뉴 항목이 표시됩니다. OP가 자신의 게시물을 만들었을 때 존재하지 않았을 수도 있지만 지금은 확실합니다.
나는 거의 모든 사용 가능한 확장을 시도했으며 아래 중 가장 좋은 것을 발견했습니다.
FirePath와 마찬가지로이 확장은 검사를 클릭 할 때 Xpath를 직접 제공합니다.