Selenium (Python 인터페이스 사용 및 여러 브라우저에서)으로 복잡한 Javascript 인터페이스를 테스트하려고합니다. 양식의 여러 버튼이 있습니다.
<div>My Button</div>
"My Button"(또는 "my button"또는 "button"과 같이 대소 문자를 구분하지 않는 부분 일치)을 기반으로 버튼을 검색하고 싶습니다.
나는 명백한 것을 놓치고 있다고 느끼는 정도로 놀랍도록 어려운 것을 발견하고 있습니다. 내가 지금까지 가장 좋은 것은 :
driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]')
그러나 이것은 대소 문자를 구분합니다. 내가 시도한 또 다른 것은 페이지의 모든 div를 반복하고 element.text 속성을 확인하는 것입니다. 그러나 다음과 같은 상황이 발생할 때마다 :
<div class="outer"><div class="inner">My Button</div></div>
div.outer에는 "My Button"도 텍스트로 사용됩니다. 그 문제를 해결하기 위해 div.outer가 div.inner의 부모인지 확인하려고했지만 그 방법을 알 수 없었습니다 (element.get_element_by_xpath ( '..')는 요소의 부모를 반환하지만 div.outer와 같지 않은 테스트). 또한 적어도 Chrome 웹 드라이버를 사용하면 페이지의 모든 요소를 반복하는 것이 실제로 느린 것 같습니다.
아이디어?
편집 :이 질문은 약간 모호하게 나왔습니다. 더 구체적인 버전을 여기 에서 묻고 대답했습니다 : 자식 요소 텍스트를 포함하지 않고 Selenium WebDriver에서 요소를 텍스트로 얻는 방법 (파이썬 API를 통해)?