셀레늄 웹 드라이버를 사용하여 깨진 링크를 찾는 방법?

웹 사이트에서 404/페이지를 찾을 수 없음/죽은 하이퍼 링크를 접할 때 어떤 생각이 떠오릅니까? 아! 당신이 지속적으로 웹 제품(또는 웹 사이트)에 깨진 링크의 존재를 제거에 집중해야하는 유일한 이유는 깨진 하이퍼 링크를 통해 올 때 당신은 성가신 찾을 것입니다. 수동 검사 대신 셀레늄 웹 드라이버를 사용하여 깨진 링크 테스트를 위해 자동화를 활용할 수 있습니다.

끊김

출처

특정 링크가 끊어지고 방문자가 페이지에 도착하면 해당 페이지의 기능에 영향을 미치고 사용자 경험이 저하됩니다. 경험에 최소 초점 있는다 고’너의 방문자에게 느낌을 주기 때문에,죽은 연결은 너의 제품 신뢰성을 낙상할 수 있었다.

웹 제품에 404 오류(또는 페이지를 찾을 수 없음)가 발생하는 많은 페이지(또는 링크)가 있는 경우 검색 엔진(예:구글)의 제품 순위도 심하게 영향을 받습니다. 죽은 링크의 제거는 검색 엔진 최적화(검색 엔진 최적화)활동의 필수적인 부분 중 하나입니다.

셀레늄 웹 드라이버 튜토리얼 시리즈의이 부분에서,우리는 셀레늄 웹 드라이버를 사용하여 깨진 링크를 찾는 깊은 다이빙. 우리는 셀레늄 파이썬,셀레늄 자바,셀레늄 씨#및 셀레늄 사용하여 깨진 링크 테스트를 시연했습니다.

웹 테스트에서 끊어진 링크 소개

간단히 말해서 웹 사이트(또는 웹 앱)에서 끊어진 링크(또는 죽은 링크)는 연결할 수 없으며 예상대로 작동하지 않는 링크입니다. 링크는 서버 문제로 인해 일시적으로 다운되거나 백 엔드에서 잘못 구성 될 수 있습니다.

404 - 페이지를 찾을 수 없음

출처

404 오류가 발생하는 페이지 외에도 깨진 링크의 다른 두드러진 예는 잘못된 형식의 링크입니다.)이동 또는 삭제 된.

깨진 링크에 대한 눈에 띄는 이유

다음은 깨진 링크의 발생 뒤에 일반적인 이유 중 일부입니다(죽은 링크 또는 링크 썩음):

  • 사용자가 입력한 주소가 잘못되었습니다.
  • 웹 사이트의 구조 변경(예:영구 링크)이 제대로 구성되지 않았습니다.
  • 동영상,문서 등의 콘텐츠에 대한 링크 즉,이동 또는 삭제 중 하나입니다. 콘텐츠가 이동되면’내부 링크’를 지정된 링크로 리디렉션해야합니다.
  • 사이트 유지 관리로 인해 일시적으로 웹 사이트에 액세스 할 수 없게됩니다.
  • 깨 HTML 태그에 자바스크립트 오류,부정확한 HTML/CSS 사용자 지정,깨지 포함된 요소,등등.,페이지 선도 내에서 깨진 링크로 이어질 수 있습니다.
  • 지리적 위치 제한으로 인해 특정 아이피 주소(블랙리스트에 등록된 경우)또는 전 세계 특정 국가에서 웹 사이트에 액세스할 수 없습니다. 셀레늄을 사용한 지리적 위치 테스트를 통해 사이트에 액세스하는 위치(또는 국가)에 맞게 환경을 맞춤 설정할 수 있습니다.

왜 깨진 링크를 확인해야합니까?

깨진 링크는 귀하의 웹사이트에 착륙 하는 방문자에 대 한 큰 턴 오프. 여기 왜 당신이 당신의 웹사이트에 끊긴 연결을 검사해야 하는지 주원인의 어떤은 있다:

  • 깨진 링크는 사용자 경험을 해칠 수 있습니다.
  • 깨진(또는 죽은)링크의 제거는 검색 엔진 최적화(검색 엔진 최적화)에 필수적입니다,그것은 검색 엔진에 사이트의 순위에 영향을 미칠 수 있습니다(예를 들어,구글).

깨진 링크 테스트는 웹 페이지에서 셀레늄 웹 드라이버를 사용하여 수행 할 수 있으며,이 테스트는 사이트의 죽은 링크를 제거하는 데 사용할 수 있습니다.

끊어진 링크 및 상태 코드

사용자가 웹 사이트를 방문하면 브라우저에서 사이트의 서버로 요청이 전송됩니다. 서버는’ 상태 코드’라는 세 자리 코드로 브라우저의 요청에 응답합니다.’

상태 코드는 웹 브라우저에서 보낸 요청에 대한 서버의 응답입니다. 이러한 상태 코드는 브라우저와 서버 간의 대화와 동일한 것으로 간주됩니다.

다른 웹 사이트 상태 코드가 서로 다른 용도로 사용되지만 대부분의 코드는 사이트의 문제를 진단하고 사이트 가동 중지 시간,죽은 링크 수 등을 최소화하는 데 유용합니다. 모든 세 자리 상태 코드의 첫 번째 숫자는 숫자 1~5 로 시작합니다. 상태 코드는 다음과 같이 표시됩니다..,그 특정한 범위에 있는 상태 부호를 나타내기를 위한 5 엑스. 이러한 각 범위는 서로 다른 서버 응답 클래스로 구성되어 있으므로 끊어진 링크에 대해 제시된 상태 코드로 토론을 제한합니다.

다음은 셀레늄과 끊어진 링크를 감지하는 데 유용한 일반적인 상태 코드 클래스입니다:

상태 코드 설명
서버가 여전히 요청을 통해 생각하고 있습니다.
브라우저에서 보낸 요청이 성공적으로 완료되었으며 서버에 의해 예상 응답이 브라우저에 전송되었습니다.
이는 리디렉션이 수행 중임을 나타냅니다. 예를 들어,301 리디렉션은 웹 사이트에서 영구 리디렉션을 구현하는 데 널리 사용됩니다.
이는 특정 페이지(또는 전체 사이트)에 연결할 수 없음을 나타냅니다.
이는 브라우저에서 유효한 요청을 보냈음에도 불구하고 서버가 요청을 완료할 수 없음을 나타냅니다.

웹 서버가 고장난 링크를 발견했을 때 나타나는 일반적인 상태 코드는 다음과 같습니다:

상태 코드 설명
400 (잘못된 요청) 서버가 요청을 처리할 수 없습니다.
400 (잘못된 요청-잘못된 호스트) 이는 요청을 처리할 수 없기 때문에 호스트 이름이 잘못되었음을 나타냅니다.
400 (예를 들어,괄호,슬래시 등이 누락되었습니다.).
400 (잘못된 요청–시간 초과) 이 요청은 시간이 초과되었음을 나타냅니다.
400 (잘못된 요청-비어 있음) 서버에서 반환한 응답은 콘텐츠 및 응답 코드가 없는 상태로 비어 있습니다.
400 (잘못된 요청–재설정) 이는 서버가 다른 요청을 처리하는 데 사용 중이거나 사이트 소유자가 잘못 구성했기 때문에 요청을 처리할 수 없음을 나타냅니다.
403 (금지됨) 정품 요청이 서버로 전송되지만 인증이 필요하므로 동일한 요청을 수행하지 않습니다.
404 (페이지를 찾을 수 없음) 서버에서 리소스(또는 페이지)를 사용할 수 없습니다.
408 (요청 시간 초과) 서버가 요청을 기다리는 시간 초과되었습니다. 클라이언트(예:브라우저)는 서버가 대기 할 준비가 된 시간 내에 동일한 요청을 보낼 수 있습니다.
410 (404 보다 영구적인 상태 코드(페이지를 찾을 수 없음)입니다. 410 은 페이지가 사라 졌음을 의미합니다.
이 페이지는 서버에서 사용할 수 없으며 전달(또는 리디렉션)메커니즘이 설정되지 않았습니다. 410 페이지에 조준하는 연결은 죽은 자원에 방문자를 보내고 있다.
503 (서비스를 사용할 수 없음) 이는 서버가 일시적으로 오버로드되어 요청을 처리할 수 없음을 나타냅니다. 그것은 또한 유지 보수 사이트의 임시 가동 중지 시간에 대 한 검색 엔진을 나타내는 서버에서 수행 되 고 의미할 수 있습니다.

셀레늄 웹 드라이버를 사용하여 깨진 링크를 찾는 방법?

셀레늄 웹드라이버와 함께 사용되는 언어와 상관없이,셀레늄을 사용한 끊어진 링크 테스트의 원칙은 동일하게 유지된다. 다음은 셀레늄 웹 드라이버를 사용하여 깨진 링크 테스트 단계입니다:

  1. 태그를 사용하여 웹 페이지에 있는 모든 링크의 세부 정보를 수집합니다.
  2. 모든 링크에 대해 요청을 보냅니다.
  3. 이전 단계에서 전송된 요청에 대한 응답으로 수신된 대응 응답 코드를 검증한다.
  4. 서버가 보낸 응답 코드를 기반으로 링크가 끊어 졌는지 여부를 확인합니다.
  5. 페이지에 있는 모든 링크에 대해 단계(2-4)를 반복합니다.

이 셀레늄 웹 드라이버 자습서에서는 셀레늄 웹 드라이버를 사용하여 깨진 링크 테스트를 수행하는 방법을 보여줍니다. 테스트는(크롬 85.0+윈도우 10)조합에 실시하고,실행은 람다 테스트에서 제공하는 클라우드 기반의 셀레늄 그리드에서 수행된다.

람다테스트를 시작하려면 플랫폼에서 계정을 만들고 람다테스트의 프로필 섹션에서 사용할 수 있는 사용자 이름&액세스 키를 확인합니다. 브라우저 기능은 람다 테스트 기능 생성기를 사용하여 생성됩니다.

여기는 테스트 시나리오를 찾는 데 사용됩 링크에 사용하는 웹사이트 셀레늄:

테스트 시나리오의

  1. 가 LambdaTest 블로그 i.e.https://www.lambdatest.com/blog/크롬에서 85.0
  2. 모든 링크는 현재 페이지에서
  3. HTTP 요청을 보내 각 링크에 대한
  4. 인쇄 여부 링크가 부서지거나에서는 터미널

그것은 주목하는 것이 중요하에 소요되는 시간을 깨진 링크를 사용하여 테스트하 셀레늄의 수에 따라 달라집 링크는 현재에는’웹 페이지에 있는 테스트입니다.’페이지의 링크 수가 많을수록 깨진 링크를 찾는 데 더 많은 시간이 소요됩니다. 예를 들어,람다 테스트는 링크의 거대한 숫자(~150+)가;따라서,깨진 링크를 찾는 과정은 약간의 시간(약 몇 분)이 걸릴 수 있습니다.

셀레늄 그리드에서 테스트

셀레늄 그리드에서 테스트 스크립트 실행

2000+브라우저 및 운영 체제

무료 가입

셀레늄 자바를 사용한 끊어진 링크 테스트

구현

코드 연습

1. 필요한 패키지 가져오기

정규식의 메서드.패턴 패키지 해당 링크에 패턴에 저장된 특수 구문을 사용하여 이메일 주소 또는 전화 번호가 포함되어 있는지 확인합니다.

1
2

이 문제를 해결하려면 다음을 수행하십시오.유틸리티정규식.패턴;

2. 페이지 링크 수집

테스트 중인 링크에 있는 링크(예:람다테스트 블로그)는 셀레늄의 타그나임을 사용하여 찾을 수 있습니다. 요소(또는 링크)의 식별에 사용되는 태그 이름은’에이’.

링크는 페이지에 깨진 링크를 확인하기 위해 목록을 반복 목록에 배치됩니다.

1
링크=드라이버 목록<웹 요소>.찾기 요소(으로.타냐메(“에이”));

3. 반복기 개체는 단계에서 만든 목록을 반복하는 데 사용됩니다(2)

1
반복자<웹 요소>링크=링크.반복자();

4. 시간 반복자(즉,링크)가 반복 할 요소가 더 없을 때까지 루프가 실행됩니다. 이 태그는 다음과 같습니다.

1
2
3

동안(링크.다음())
{
링크.다음().이 문제를 해결했습니다.”);

다음과 같은 경우 링크 확인을 건너 뜁니다.

1
2
3
4
5

다음 예제는 다음과 같습니다.아이스빈티는()))
{
체계.밖으로.”앵커 태그에 대해 구성되지 않았거나 비어 있습니다”);
계속;
}

비. 링크에는 메일 토 또는 전화 번호가 포함되어 있습니다

1
2
3
4
5

만약((주소.이 문제를 해결하는 방법은 무엇입니까?시작(전화)))
{
체계.밖으로.”이메일 주소 또는 전화 검색됨”);
계속;
}

링크드 인 페이지를 확인할 때 상태 코드는 999 입니다. 부울 변수(예:,링크드 인)는 깨진 링크가 아니라는 것을 나타 내기 위해 사실로 설정됩니다.

1
2
3
4
5

만약(주소.시작(링크인페이지))
{
체계.밖으로.예상 상태 코드는 다음과 같습니다.999″);
사실;
}

5. 상태 코드

를 통해 링크의 유효성을 검사합니다.

원격 개체에 대한 연결을 나타내는 인스턴스를 반환합니다. 이 유형의 캐스팅은 다음과 같습니다.

1
2
3
4
5
6
7

이 문제를 해결하려면 다음을 수행하십시오……………………………………….
……………………………………….
………………………………………. 이 문제를 해결하려면 다음을 수행하십시오.오픈커넥션());
연결.설정 요청 방법(“머리”);

이 메서드는 요청의 메서드를 설정합니다. 요청 유형은 헤더만 반환되도록 헤드로 설정됩니다. 반면에 요청 유형 가져오기는 이 특정 테스트 시나리오에서는 필요하지 않은 문서 본문을 반환했을 것입니다.

1
연결.연결();

이 메서드는 이전에 보낸 요청에 대한 상태 코드를 반환합니다.

1
이 코드는 다음과 같습니다.응답 코드();

그렇지 않으면 유효한 링크(즉,유효한 링크)를 포함하는 변수가 증가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

만약(응답 코드>= 400)
{
이 문제를 해결하는 방법은 다음과 같습니다.))
{
체계.밖으로.”링크드 인 페이지이며 깨진 링크가 아닙니다.”);
++;
}
다른
{
체계.밖으로.2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일++;
}
}
다른
{
체계.밖으로.2018 년 11 월 15 일(토)~2018 년 11 월 15 일(일)++;
}

실행

셀레늄 자바를 사용한 깨진 링크 테스트를 위해 인텔리 아이디어에서 프로젝트를 만들었습니다. 기본 치어.이 파일은 작업에 충분했습니다!

다음은 람다테스트 블로그 페이지에서 169 개의 유효한 링크와 0 개의 끊어진 링크를 나타내는 실행 스냅샷입니다.

셀레늄 자바 테스트 실행

이메일 주소와 전화 번호가 포함된 링크는 아래와 같이 검색 목록에서 제외되었습니다.

자동화 테스트 실행

램데이트의 자동화 로그에 표시된 것처럼 아래 스크린샷에서 테스트가 실행되고 2 분 35 초 안에 완료되는 것을 볼 수 있습니다.

람다테스트 자동화 로그

셀레늄 파이썬을 사용한 끊어진 링크 테스트

구현

코드 연습

1. 모듈 가져 오기

셀레늄 웹 드라이버 용 파이썬 모듈을 가져 오는 것 외에도 요청 모듈을 가져옵니다. 요청 모듈을 사용하면 모든 종류의 요청을 보낼 수 있습니다. 이 패키지에는 주 프로그램 바이너리와 미리 컴파일된 대수 및 자동 로드 모듈이 전부 들어있습니다.

1
2
3

요청에서 가져 오기 요청
가져 오기 요청
.예외를 가져 오는 것은 다음과 같습니다.

2. 웹 요소들을 검색하여 찾을 수 있습니다.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.””속성.

1
링크=드라이버.(로.이 방법은 다음과 같습니다.”)

이 메서드를 사용하면 요소를 반복 할 수 있으므로 요소 찾기 메서드가 아닌 요소 찾기 메서드를 사용할 수 있습니다.

3. 요청 모듈의 헤드 메서드는 지정된 링크에 헤드 요청을 보내는 데 사용됩니다. 이 메서드는 앵커 태그의 속성을 얻기 위해 모든 링크에서 사용됩니다.

헤드 메서드는 주로 상태_코드 또는 헤더만 필요한 시나리오에서 사용 됩니다. 헤드 메소드는 요청을 반환합니다.상태 코드(예:요청)가 포함 된 응답 객체입니다.코드.

1
2
3
4

링크의 링크:
시도:
요청=요청.머리(링크.이 문제를 해결하려면 다음을 수행하십시오.:’값’})
인쇄(“상태”+링크.이 문제를 해결하는 방법은 무엇입니까?상태 _코드))

페이지에 존재하는 모든’링크’가 소진 될 때까지 동일한 작업 세트가 반복적으로 수행됩니다.

4. 상태 코드

을 통해 링크의 유효성을 검사한다. 연결이 끊어지지 않은 경우 상태 코드는 200 입니다.

1
2
3
4

면(요청.상태 _코드== 404):
나는 이것이 내가 원하는 모든 것을 할 수있는 유일한 방법이라고 생각합니다.+ 1)

5. 관련 없는 요청 건너뛰기

예를 들어,헤드 메소드는 예외(즉,누락 된 스케마,무효화 된 스케마)를 초래합니다.

1
2
3
4
5
6

except requests.exceptions.MissingSchema:
print(“Encountered MissingSchema Exception”)
except requests.exceptions.InvalidSchema:
print(“Encountered InvalidSchema Exception”)
except:
인쇄(“다른 실행이 발생했습니다”)

이러한 예외는 적발,같은 터미널에 인쇄.

실행

우리는 여기 파이넷(또는 단위 테스트),셀레늄을 사용하여 깨진 링크 테스트 파이썬의 기본 테스트 프레임 워크를 사용했다. 터미널에서 다음 명령을 실행합니다:

1
파이썬 브로큰 링크.피

람다 테스트 블로그 페이지가 약 150 개 이상의 링크로 구성되어 있기 때문에 실행에는 약 2-3 분이 소요됩니다. 아래의 실행 스크린 샷은 페이지에 169 개의 유효한 링크와 0 개의 깨진 링크가 있음을 보여줍니다.이는 이러한 링크가 평가에서 건너뜀을 나타냅니다.

잘못된 스키마 예외

링크드 인에 머리 요청(즉,) 상태 코드 999 결과. 이 스레드에 명시된 바와 같이 스택 오버 플로우,링크드 인은 사용자 에이전트를 기반으로 요청을 필터링하고 요청으로 인해’액세스가 거부되었습니다.

<url> 상태 코드

로컬 셀레늄 그리드에서 동일한 테스트를 실행하여 람다테스트 블로그 페이지에 있는 링크드인 링크가 깨졌는지 여부를 확인했습니다.구현

코드 연습

수녀 프레임 워크는 자동화 테스트에 사용 됩니다; 테스트 자동화에 대한 이전 블로그는 프레임워크를 시작하는 데 도움이 될 수 있습니다.

1. 클라이언트 네임스페이스는 사용 지시문을 통해 사용할 수 있도록 추가됩니다. 이 클래스는 기본 클래스이며,이 클래스는 기본 클래스이며,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스이고,이 클래스는 기본 클래스입니다.

시스템 대신 클라이언트를 사용하는 것이 좋습니다.

1
2

시스템 사용.;
시스템 사용.스레딩.작업;

2. 비동기 테스트 메서드는 비동기 작업으로 지정됩니다.

1
2

공개 비동기 작업()
{

3. 페이지에 존재하는 링크를 수집

첫째,우리는 클라이언트의 인스턴스를 만듭니다.

1
새 클라이언트();

이 문서는 기계 번역되었으므로 어휘,구문 또는 문법에서 오류가 있을 수 있습니다

1
바르 링크=드라이버.찾기 요소(으로.(“));

이 메서드는 링크의 작업 가능성을 확인하기 위해 반복할 수 있는 배열(또는 목록)을 반환할 때 페이지의 링크를 찾는 데 사용됩니다.

4. 이 경우,각 링크에 대한 링크의 유효성을 검사할 수 있습니다.

1
2

링크 링크)
{

우리는/이메일 주소/전화 번호/링크드 인 주소를 포함하는 링크를 필터링합니다. 링크 텍스트가 없는 링크도 필터링됩니다.

1
2

만약(!(링크.텍스트.포함(“이메일”)||링크.텍스트.포함(“https://www.linkedin.com”)||링크.텍스트==””//링크.같음(널)))
{

이 메서드는 비동기식 동작으로 호출됩니다. 이 메서드를 사용하여 수집된 앵커의 속성 값입니다.

비동기 메서드의 평가는 비동기 작업이 완료될 때까지 대기 연산자에 의해 일시 중단됩니다. 비동기 작업이 완료되면 대기 연산자는 데이터 및 상태 코드가 포함된 응답 메시지를 반환합니다.

1
2
3

/* 이 문제를 해결하려면 다음 단계를 수행하십시오.링크.이 문제를 해결했습니다.”));
체계.콘솔.다음 링크를 클릭하십시오.이 문제를 해결하려면 다음 단계를 수행하십시오.상태코드}”);

5. 상태 코드

을 통해 링크의 유효성을 검사합니다.(4)단계에서 전송된 요청의 경우,이 코드는 다음과 같습니다.확인(즉,200),요청이 성공적으로 완료되었음을 의미합니다.

1
2
3
4
5
6
7
8
9

체계.Console.WriteLine($”URL: {link.GetAttribute(“href”)} status is :{response.StatusCode}”);
if (response.StatusCode == HttpStatusCode.OK)
{
valid_links++;
}
else
{
broken_links++;
}

NotSupportedException and ArgumentNullException exceptions are handled as a part of exception handling.

1
2
3
4
5
6
7
8

catch (Exception ex)
{
if ((ex is ArgumentNullException) ||
(ex is NotSupportedException))
{
System.Console.WriteLine(“Exception occured\n”);
}
}

실행

다음은 테스트가 성공적으로 실행되었음을 보여주는 실행 스냅숏입니다.

셀레늄 웹 드라이버 테스트 실행

‘공유 아이콘’에 대한 링크에 대한 예외가 발생했습니다(예:싸이 월드,미투데이,페이스 북,트위터 등).selenium 이 링크 외에도 람다테스트 블로그 페이지의 나머지 링크는 코드를 반환합니다.확인(즉,200).이 테스트에서 테스트 된 코드는 다음과 같습니다:1.이 테스트에서 테스트 된 코드는 다음과 같습니다. 페이지 소스 읽기

페이지 소스 읽기

페이지 소스 읽기

페이지 소스 읽기

페이지 소스 읽기

페이지 소스 읽기

페이지 소스 읽기

1
2

$테스트= “https://www.lambdatest.com/blog/”;
$다음 예제에서는 다음과 같이 설명합니다.);

2. 문서 트리의 루트 역할을 합니다.

1
$새 돔문서;

3. 분석 HTML 페이지의

DOMDocument::loadHTML()함수를 사용되는 구문 분석하기 위한 HTML 소스에서 포함되는$html. 성공적으로 실행되면 함수가 반환됩니다.

1
@$1047.01.2019*);

4. 페이지에서 링크 추출

페이지에 있는 링크는 다음과 같이 추출됩니다. 요소(또는 링크)는 구문 분석 된 소스에서’태그’를 기반으로 검색됩니다.로컬 태그 이름의 요소(또는 링크)가 들어 있는 돔 노드 목록의 새 인스턴스를 반환합니다. 태그)

1
$이 문제를 해결하려면 다음을 수행하십시오.’);

5. 단계(4)에서 생성된 돔 노드 목록은 링크의 유효성을 확인하기 위해 트래버스됩니다.

1
2
3

각($링크로$링크)
{
$링크 텍스트=$링크->노드 값;

해당 링크의 세부 사항은’참조’속성을 사용하여 얻을 수 있습니다. 이 메서드는 다음과 같은 경우에 사용됩니다.

1
$이 문제를 해결하는 방법은 다음과 같습니다.;

링크가 비어 있는 경우 링크 확인 건너뛰기:

1
2
3
4

이 문제를 해결하는 방법은 무엇입니까?)) == 0)
{
계속;
}

비. 링크는 해시 태그 또는 앵커 링크입니다

1
2
3
4

다음 예제는 다음과 같습니다.== ‘#’)
{
계속;
}

다.링크에는 메일 토 또는 추가물론(즉,소셜 공유 옵션)이 포함되어 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

function check_nonlinks($test_url, $테스트_패턴)
{
이 문제를 해결하는 데 도움이되는 몇 가지 방법이 있습니다.)
{
거짓 반환;
}
다른
{
진정한 반환;
}
}
공용 기능 테스트_브로큰 _링크()
{
$이 방법은 다음과 같습니다./’;
$이 방법은 다음과 같습니다./’;
…………………………………………………………..
…………………………………………………………..
………………………………………………………….. 이 경우,링크 된 링크(링크 된 링크)는 링크 된 링크(링크 된 링크)에 대한 링크 된 링크(링크 된 링크)를 나타냅니다.)))
{
이 문제를 해결하려면 다음을 수행하십시오.;
}
…………………………………………………………..
…………………………………………………………..
…………………………………………………………..
}

정규식(정규식)을 사용하여 메일 토 및 추가 대소 문자를 구분하지 않는 검색을 수행합니다. 이 예제에서는 다음과 같은 정규 표현식을 사용할 수 있습니다.

6. 우리는 해당 링크의 상태에 대한 정보를 얻기 위해 컬을 사용합니다. 첫 번째 단계는 유효성 검사를 수행해야하는’링크’로 컬 세션을 초기화하는 것입니다. 이 메서드는 구현의 후반부에 사용될 컬 인스턴스를 반환합니다.

1
$이 방법은 다음과 같습니다.);

이 메서드는 지정된 컬 세션 핸들(예:$컬)에 대한 옵션을 설정하는 데 사용됩니다.

1
이 방법은 다음과 같습니다.;

이 메서드는 지정된 컬 세션을 실행하기 위해 호출됩니다. 그것은 성공적인 실행에 진정한 반환합니다.

1
$결과=컬($컬));

이 페이지에서 깨진 링크를 확인하는 논리의 가장 중요한 부분입니다. 이 함수는 컬 세션 핸들(예:$컬)과 컬 세션 응답 코드(예:컬 세션 핸들)를 사용합니다. 마지막 전송에 대한 정보를 얻는 데 사용됩니다. 그것은 응답으로 상태 코드를 반환합니다.

1
$이 코드를 사용하여 코드를 생성 할 수 있습니다.);

요청을 성공적으로 완료하면 200 의 상태 코드가 반환되고 유효한 링크 수를 보유하는 변수(즉,$유효 링크)가 증가합니다. 400(또는 그 이상)의 상태 코드를 초래하는 링크의 경우’테스트중인 링크’가 람다테스트의 링크드 인 페이지 인 경우 검사가 수행됩니다. 앞서 언급했듯이 링크드 인 페이지의 상태 코드는 999 입니다.

400(또는 그 이상)의 상태 코드를 반환 하는 다른 모든 링크에 대 한,끊어진 링크 수를 들고 변수(즉,$끊어진_링크)증가 됩니다.

1
2
3
4
5
6
7
8
9
10

이 문제를 해결하는 방법은 다음과 같습니다.== 999))
{
인쇄(“\엔 링크”). $링크레프. “링크드 인 페이지이고 상태는”.2598>$유효성 검사 링크++;
}
다른
{
인쇄(“\엔 링크”). $링크레프. “깨진 링크 및 상태는”입니다.나는 그것을 좋아한다.;
$브로큰링크++;
}

실행

우리는 페이지의 깨진 링크를 테스트하기 위해 프레임 워크를 사용합니다. 프레임워크를 다운로드하려면 파일 작성기를 추가합니다.루트 폴더 및 실행 작곡가에

터미널에서 다음 명령을 실행하여 끊어진 링크를 확인합니다.

1
이 문제를 해결하려면 다음을 수행하십시오.2015 년

다음은 램데이트 블로그에서 총 116 개의 유효한 링크와 0 개의 깨진 링크를 보여주는 실행 스냅 샷입니다. 소셜 공유(예:추가)및 이메일 주소에 대한 링크는 무시되므로 총 수는 116(셀레늄 파이썬 테스트에서 169)입니다.

실행 스냅 샷

결론

고정

출처

죽은 링크 또는 썩은 링크라고도하는 깨진 링크는 웹 사이트에 있으면 사용자 경험을 방해 할 수 있습니다. 끊긴 연결은 또한 수색 엔진에 순위를 충격을 가할 수 있는다. 따라서 웹 사이트 개발 및 테스트와 관련된 활동을 위해 깨진 링크 테스트를 정기적으로 수행해야합니다.

웹 사이트에서 끊어진 링크를 확인하기 위해 타사 도구 또는 수동 방법에 의존하는 대신 끊어진 링크 테스트는 셀레늄 웹 드라이버를 사용하여 수행 할 수 있습니다. 웹 페이지에 액세스 할 때 반환되는 상태 코드는 셀레늄 프레임 워크를 사용하여 깨진 링크를 확인하는 데 사용해야합니다.

자주 묻는 질문

셀레늄 파이썬에서 깨진 링크를 어떻게 찾을 수 있습니까?

끊어진 링크를 확인하려면 태그를 기반으로 웹 페이지의 모든 링크를 수집해야합니다. 그런 다음 링크에 대한 요청을 보내고 응답 코드를 읽습니다. 링크가 유효한지 또는 끊어 졌는지 확인하십시오.

깨진 링크를 어떻게 확인합니까?

지속적으로 구글 검색 콘솔을 사용하여 깨진 링크에 대한 귀하의 사이트를 모니터링하려면 다음 단계를 수행:

  1. 구글 검색 콘솔 계정에 로그인합니다.
  2. 모니터링할 사이트를 클릭합니다.
  3. 크롤링을 클릭한 다음 다음으로 가져오기를 클릭합니다.
  4. 검색 결과에 액세스하려면 크롤링을 클릭한 다음 크롤링 오류를 클릭합니다.
  5. 크롤링 프로세스 중에 발견된 모든 끊어진 링크를 볼 수 있습니다.

셀레늄을 사용하여 웹에서 깨진 이미지를 어떻게 찾을 수 있습니까?

페이지를 방문하십시오. 404 상태 코드가 있는지 확인합니다. 각 깨진 이미지를 컬렉션에 저장하십시오. 깨진 이미지 컬렉션이 비어 있는지 확인합니다.

셀레늄의 모든 링크를 어떻게 얻을 수 있습니까?

<>태그 선물을 기반으로 웹 페이지에 존재하는 모든 링크를 얻을 수 있습니다. 각<>태그는 링크를 나타냅니다. 셀레늄 로케이터를 사용하여 이러한 모든 태그를 쉽게 찾을 수 있습니다.

깨진 링크가 나쁜 이유는 무엇입니까?

그들은 사용자 경험을 해칠 수–사용자가 링크를 클릭하고 막 다른 404 오류에 도달하면,그들은 좌절과 반환하지 않을 수 있습니다. 그들은 당신의 검색 엔진 최적화 노력을 평가 절하–깨진 링크는 부정적으로 순위에 영향을 미치는,귀하의 사이트에 걸쳐 링크 자본의 흐름을 제한 할 수 있습니다.

히만슈 셰스

히만슈 셰스는 15 년 이상의 다양한 업무 경험을 가진 노련한 기술자이자 블로거입니다. 그는 현재 람다 테스트에서’리드 개발자 전도자’와’수석 관리자’로 작동합니다. 그는 벵갈 루루에서 시작 커뮤니티(아래 남쪽)와 매우 활성화되어 자신의 개인 블로그(그는 지난 15+년 이후 유지하고있다)에 열정적 인 설립자와 상호 작용하는 사랑.

Leave a Reply

이메일 주소는 공개되지 않습니다.