스택큐힙리스트

Selenium WebDriver(Python)에서 특정 텍스트를 포함하는 요소를 어떻게 찾습니까? 본문

카테고리 없음

Selenium WebDriver(Python)에서 특정 텍스트를 포함하는 요소를 어떻게 찾습니까?

스택큐힙리스트 2023. 4. 20. 06:56
반응형

저는 Selenium(파이썬 인터페이스 및 여러 브라우저 사용)를 사용하여 복잡한 JavaScript 인터페이스를 테스트하고 있습니다. 버튼의 형식은 다음과 같습니다.

My Button

내 버튼을 기반으로 (대소문자 구분 없는 일부 일치인 내 버튼 또는 버튼과 같은) 버튼을 검색할 수 있으면 좋겠습니다.

이게 굉장히 어려운 것 같아요. 뭔가 자명한 것이 빠진 것 같은 느낌이 들어요. 지금까지 가장 좋은 것은:

driver.find_elements_by_xpath('//div[contains(text(), ' + text + ')]')

이 경우는 대소문자를 구분합니다. 다른 시도한 것은 페이지의 모든 div를 반복하고 element.text 속성을 확인하는 것입니다. 그러나 다음과 같은 상황이 발생할 때마다:

My Button

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)에서 특정 텍스트를 포함하는 요소를 찾을 수 있습니다. 이를 통해 웹 페이지를 스크레이핑하거나 웹 애플리케이션을 테스트할 때 필요한 요소를 빠르고 쉽게 찾을 수 있습니다.

반응형
Comments