일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 데이터분석
- 컴퓨터공학
- 버전관리
- 파이썬
- 데이터베이스
- 소프트웨어
- 네트워크
- 자바스크립트
- 웹개발
- 데이터구조
- Yes
- 프로그래밍언어
- 인공지능
- 2
- 사이버보안
- 소프트웨어공학
- 머신러닝
- 보안
- 자료구조
- 딥러닝
- I'm Sorry
- 코딩
- 컴퓨터비전
- 프로그래밍
- 데이터과학
- 네트워크보안
- 클라우드컴퓨팅
- 빅데이터
- 알고리즘
- 컴퓨터과학
- Today
- Total
스택큐힙리스트
Selenium WebDriver(Python)에서 특정 텍스트를 포함하는 요소를 어떻게 찾습니까? 본문
저는 Selenium(파이썬 인터페이스 및 여러 브라우저 사용)를 사용하여 복잡한 JavaScript 인터페이스를 테스트하고 있습니다. 버튼의 형식은 다음과 같습니다.
내 버튼을 기반으로 (대소문자 구분 없는 일부 일치인 내 버튼 또는 버튼과 같은) 버튼을 검색할 수 있으면 좋겠습니다.
이게 굉장히 어려운 것 같아요. 뭔가 자명한 것이 빠진 것 같은 느낌이 들어요. 지금까지 가장 좋은 것은:
driver.find_elements_by_xpath('//div[contains(text(), ' + text + ')]')
이 경우는 대소문자를 구분합니다. 다른 시도한 것은 페이지의 모든 div를 반복하고 element.text 속성을 확인하는 것입니다. 그러나 다음과 같은 상황이 발생할 때마다:
div.outer에는 내 버튼 이라는 텍스트도 있습니다. 그를 해결하기 위해, div.outer가 div.inner의 부모인지 확인하기 위해 시도해 보았지만 (element.get_element_by_xpath('..')은 요소의 부모를 반환하지만 div.outer와 다릅니다) 어떻게 해야 할지 몰랐습니다.
또한, Chrome 웹드라이버를 사용하는 경우 페이지의 모든 요소를 반복하면 속도가 굉장히 느린 것으로 보입니다.
아이디어?
여기에서 더 구체적인 버전을 질문하고 (자답)했습니다: # $! # ^ $$ @ $ &
답변 1
다음을 시도해보세요:
driver.find_elements_by_xpath(//*[contains(text(), 'My Button')])
답변 2
Selenium WebDriver (Python)에서 특정 텍스트를 포함하는 요소를 어떻게 찾을 수 있을까요?Selenium WebDriver는 웹 브라우저를 제어하는데 사용되는 강력한 자동화 도구입니다. Python을 사용하면 Selenium WebDriver를 사용하여 웹 애플리케이션을 테스트하고 스크레이핑 할 수 있습니다. 그러나 때로는 웹 페이지에서 특정 텍스트를 포함하는 요소를 찾아야 하는 경우가 있습니다. 이를 위해 Selenium WebDriver (Python)에서는 다음과 같은 방법을 사용할 수 있습니다.
1. find_element_by_xpath(): XPath를 사용하여 웹 페이지에서 요소를 찾습니다. 이 메서드를 사용하면 XPath 식을 사용하여 요소를 선택할 수 있습니다. find_element_by_xpath()는 일치하는 첫 번째 요소를 반환합니다.
예를 들어, hello world라는 텍스트를 포함하는 버튼을 찾으려면 다음과 같이 코드를 작성할 수 있습니다.
element = driver.find_element_by_xpath(//button[contains(text(), 'hello world')])
2. find_element_by_css_selector(): CSS 선택자를 사용하여 웹 페이지에서 요소를 찾습니다. find_element_by_css_selector()는 CSS 선택자 식을 사용하여 요소를 선택합니다. 일치하는 첫 번째 요소를 반환합니다.
예를 들어, hello world라는 텍스트를 포함하는 버튼을 찾으려면 다음과 같이 코드를 작성할 수 있습니다.
element = driver.find_element_by_css_selector(button:contains('hello world'))
3. find_element_by_partial_link_text(): 링크 텍스트의 부분 일치를 사용하여 웹 페이지에서 요소를 찾습니다. 이 메서드를 사용하면 링크 텍스트의 부분 문자열이 일치하는 요소를 찾을 수 있습니다.
예를 들어, hello world라는 텍스트를 포함하는 링크를 찾으려면 다음과 같이 코드를 작성할 수 있습니다.
element = driver.find_element_by_partial_link_text(hello world)
이러한 방법을 사용하여 Selenium WebDriver (Python)에서 특정 텍스트를 포함하는 요소를 찾을 수 있습니다. 이를 통해 웹 페이지를 스크레이핑하거나 웹 애플리케이션을 테스트할 때 필요한 요소를 빠르고 쉽게 찾을 수 있습니다.