Selenium을 사용하여 텍스트로 요소를 찾는 방법

How Find Element Text With Selenium



웹 페이지에서 요소를 찾고 선택하는 것이 Selenium으로 웹 스크래핑의 핵심입니다. Selenium에서 태그 이름, ID, 클래스 이름, XPath 선택기, CSS 선택기 등을 사용하여 요소를 선택할 수 있습니다. Selenium을 사용하여 특정 텍스트가 있는 요소를 선택할 수도 있습니다. 이것은 웹 페이지에서 링크와 버튼을 쉽게 선택하는 데 유용합니다. 페이지 구조가 변경되더라도 웹 페이지 요소의 텍스트가 동일하게 유지되는 한 선택기는 제대로 작동합니다. 이것은 Selenium에서 텍스트를 사용하여 링크와 버튼을 선택하는 이점입니다.

이 기사에서는 Selenium python 라이브러리와 함께 Selenium의 텍스트를 사용하여 웹 페이지에서 요소를 찾고 선택하는 방법을 보여 드리겠습니다. 시작하겠습니다.







전제 조건:

이 문서의 명령과 예제를 시도하려면 다음이 필요합니다.



  1. 컴퓨터에 설치된 Linux 배포판(우분투 권장).
  2. 컴퓨터에 설치된 Python 3.
  3. 컴퓨터에 설치된 PIP 3.
  4. 파이썬 가상 환경 컴퓨터에 설치된 패키지.
  5. 컴퓨터에 설치된 Mozilla Firefox 또는 Google Chrome 웹 브라우저.
  6. Firefox Gecko 드라이버 또는 Chrome 웹 드라이버를 설치하는 방법을 알아야 합니다.

요구 사항 4, 5 및 6을 충족하려면 내 기사를 읽으십시오. Python 3의 셀레늄 소개 .



다른 주제에 대한 많은 기사를 찾을 수 있습니다. 리눅스힌트닷컴 . 도움이 필요한 경우 반드시 확인하십시오.





프로젝트 디렉토리 설정:

모든 것을 정리하려면 새 프로젝트 디렉토리를 만드세요. 셀레늄 텍스트 선택/ 다음과 같이:

$mkdir -pv셀레늄 텍스트 선택/운전사



다음으로 이동합니다. 셀레늄 텍스트 선택/ 프로젝트 디렉토리는 다음과 같습니다.

$CD셀레늄 텍스트 선택/

다음과 같이 프로젝트 디렉터리에 Python 가상 환경을 만듭니다.

$가상 환경

다음과 같이 가상 환경을 활성화합니다.

$원천.venv/오전/활성화

다음과 같이 PIP3를 사용하여 Selenium Python 라이브러리를 설치합니다.

$ pip3 셀레늄 설치

필요한 모든 웹 드라이버를 다운로드하여 설치하십시오. 드라이버/ 프로젝트의 디렉토리. 내 기사에서 웹 드라이버를 다운로드하고 설치하는 과정을 설명했습니다. Python 3의 셀레늄 소개 .

텍스트로 요소 찾기:

이 섹션에서는 Selenium Python 라이브러리를 사용하여 텍스트로 웹 페이지 요소를 찾고 선택하는 몇 가지 예를 보여 드리겠습니다.

텍스트로 웹 페이지 요소를 선택하고 웹 페이지에서 링크를 선택하는 가장 간단한 예부터 시작하겠습니다.

facebook.com 로그인 페이지에 링크가 있습니다. 계정을 잊으셨나요? 아래 스크린샷에서 볼 수 있듯이. Selenium으로 이 링크를 선택합시다.

새 Python 스크립트 만들기 ex01.py 다음 코드 줄을 입력하십시오.

~에서셀렌수입웹드라이버
~에서셀렌.웹드라이버.흔한.열쇠 수입열쇠
~에서셀렌.웹드라이버.흔한.~에 의해 수입에 의해
~에서 시각 수입
브라우저=웹드라이버.크롬(실행 파일 경로='./드라이버/크롬드라이버')
브라우저.가져 오기('https://www.facebook.com/')
계정링크를 잊었습니다=브라우저.find_element(에 의해.XPATH, '
//*[text()='계정을 잊으셨나요?']'
)
계정링크를 잊어버렸습니다.send_keys(열쇠.시작하다)

완료되면 저장 ex01.py 파이썬 스크립트.

1-4행은 필요한 모든 구성 요소를 Python 프로그램으로 가져옵니다.

6행은 Chrome을 만듭니다. 브라우저 를 사용하여 개체 크롬 드라이버 바이너리 드라이버/ 프로젝트의 디렉토리.

8행은 브라우저에 facebook.com 웹사이트를 로드하도록 지시합니다.

10행은 텍스트가 있는 링크를 찾습니다. 계정을 잊으셨나요? XPath 선택기 사용. 이를 위해 XPath 선택기를 사용했습니다. //*[text()='계정을 잊으셨나요?'] .

XPath 선택기는 다음으로 시작합니다. //, 이는 요소가 페이지의 어느 위치에나 있을 수 있음을 의미합니다. NS * 기호는 Selenium이 태그를 선택하도록 지시합니다( 에게 또는 NS 또는 기간, 등) 대괄호 안의 조건과 일치 [] . 여기서 조건은 요소 텍스트가 계정을 잊으셨나요?

NS 텍스트() XPath 함수는 요소의 텍스트를 가져오는 데 사용됩니다.

예를 들어, 텍스트() 보고 헬로월드 다음 HTML 요소를 선택하는 경우.

< 에게 href='http://dummysite.com'>헬로월드</ 에게 >

11행은 다음을 전송합니다. 키를 눌러 계정을 잊으셨나요? 링크.

Python 스크립트 실행 ex01.py 다음 명령으로:

$ 파이썬 ex01.파이

보시다시피 웹 브라우저는 검색, 선택 및 키에 계정을 잊으셨나요? 링크.

NS 계정을 잊으셨나요? 링크는 브라우저를 다음 페이지로 이동합니다.

같은 방법으로 원하는 속성 값을 가진 요소를 쉽게 검색할 수 있습니다.

여기서, 로그인 버튼은 입력 가지고 있는 요소 기인하다 로그인 . 이 요소를 텍스트로 선택하는 방법을 살펴보겠습니다.

새 Python 스크립트 만들기 ex02.py 다음 코드 줄을 입력하십시오.

~에서셀렌수입웹드라이버
~에서셀렌.웹드라이버.흔한.열쇠 수입열쇠
~에서셀렌.웹드라이버.흔한.~에 의해 수입에 의해
~에서 시각 수입
브라우저=웹드라이버.크롬(실행 파일 경로='./드라이버/크롬드라이버')
브라우저.가져 오기('https://www.facebook.com/')
(5)
이메일 입력=브라우저.find_element(에 의해.XPATH, '//입력[@id='이메일']')
비밀번호 입력=브라우저.find_element(에 의해.XPATH, '//입력[@id='통과']')
로그인 버튼=브라우저.find_element(에 의해.XPATH, '//*[@value='로그인']')
이메일 입력.send_keys(' [이메일 보호됨] ')
(5)
비밀번호 입력send_keys('비밀통과')
(5)
로그인 버튼.send_keys(열쇠.시작하다)

완료되면 저장 ex02.py 파이썬 스크립트.

1-4행은 필요한 모든 구성 요소를 가져옵니다.

6행은 Chrome을 만듭니다. 브라우저 를 사용하여 개체 크롬 드라이버 바이너리 드라이버/ 프로젝트의 디렉토리.

8행은 브라우저에 facebook.com 웹사이트를 로드하도록 지시합니다.

스크립트를 실행하면 모든 것이 매우 빠르게 진행됩니다. 그래서, 나는 사용했다 잠() 여러 번 기능 ex02.py 브라우저 명령을 지연시키기 위해. 이런 식으로 모든 것이 어떻게 작동하는지 관찰할 수 있습니다.

11행은 이메일 입력 텍스트 상자를 찾고 요소의 참조를 이메일 입력 변하기 쉬운.

12행은 이메일 입력 텍스트 상자를 찾고 요소의 참조를 이메일 입력 변하기 쉬운.

13행은 속성이 있는 입력 요소를 찾습니다. NS 로그인 XPath 선택기를 사용합니다. 이를 위해 XPath 선택기를 사용했습니다. //*[@value='로그인'] .

XPath 선택기는 다음으로 시작합니다. // . 이는 요소가 페이지의 모든 위치에 있을 수 있음을 의미합니다. NS * 기호는 Selenium이 태그를 선택하도록 지시합니다( 입력 또는 NS 또는 기간, 등) 대괄호 안의 조건과 일치 [] . 여기서 조건은 요소 속성입니다. 와 동등하다 로그인 .

15행은 입력을 보냅니다.[이메일 보호됨]이메일 입력 텍스트 상자에 입력하고 16행은 다음 작업을 지연시킵니다.

18행은 입력된 secret-pass를 암호 입력 텍스트 상자로 보내고 19행은 다음 작업을 지연합니다.

21행은 키를 눌러 로그인 버튼을 누릅니다.

실행 ex02.py 다음 명령을 사용하는 Python 스크립트:

$ python3 ex02.파이

보시다시피 이메일 및 비밀번호 텍스트 상자는 더미 값으로 채워져 있으며 로그인 버튼이 눌렸습니다.

그런 다음 페이지는 다음 페이지로 이동합니다.

부분 텍스트로 요소 찾기:

이전 섹션에서 특정 텍스트로 요소를 찾는 방법을 보여 드렸습니다. 이 섹션에서는 부분 텍스트를 사용하여 웹 페이지에서 요소를 찾는 방법을 보여 드리겠습니다.

예에서, ex01.py , 텍스트가 있는 링크 요소를 검색했습니다. 계정을 잊으셨나요? . 다음과 같은 부분 텍스트를 사용하여 동일한 링크 요소를 검색할 수 있습니다. 잊어버린 계정 . 그렇게하려면 다음을 사용할 수 있습니다. 포함() 의 10행에 표시된 XPath 함수 ex03.py . 나머지 코드는 다음과 같습니다. ex01.py . 결과는 동일할 것입니다.

10번째 줄에서 ex03.py , 선택 조건은 포함(출처, 텍스트) XPath 함수. 이 함수는 2개의 인수를 사용합니다. 원천, 그리고 텍스트 .

NS 포함() 기능이 있는지 여부를 확인합니다. 텍스트 두 번째 인수에 주어진 부분적으로 일치 원천 첫 번째 인수의 값입니다.

소스는 요소의 텍스트( 텍스트() ) 또는 요소의 속성 값( @attr_name ).

ex03.py , 요소의 텍스트가 확인됩니다.

부분 텍스트를 사용하여 웹 페이지에서 요소를 찾는 또 다른 유용한 XPath 함수는 다음과 같습니다. 다음으로 시작(소스, 텍스트) . 이 함수에는 다음과 같은 인수가 있습니다. 포함() 기능과 같은 방식으로 사용됩니다. 유일한 차이점은 로 시작() 함수는 두 번째 인수가 텍스트 첫 번째 인수의 시작 문자열입니다. 원천 .

나는 예를 다시 썼다 ex03.py 텍스트가 다음으로 시작하는 요소를 검색하려면 잊혀진, 10번째 줄에서 볼 수 있듯이 ex04.py . 결과는 에서와 동일합니다. ex02 그리고 ex03.py .

나도 다시 썼다 ex02.py 입력 요소를 검색하기 위해 속성 시작 통나무, 13번째 줄에서 볼 수 있듯이 ex05.py . 결과는 에서와 동일합니다. ex02.py .

결론:

이 기사에서는 Selenium Python 라이브러리를 사용하여 텍스트로 웹 페이지에서 요소를 찾고 선택하는 방법을 보여주었습니다. 이제 Selenium Python 라이브러리를 사용하여 특정 텍스트 또는 부분 텍스트로 웹 페이지에서 요소를 찾을 수 있습니다.