2017-11-03 8 views
1

이상의 기간에 대해 서로 다른 텍스트를 반환 사파리, 파이어 폭스, 크롬파이썬 셀레늄 : 파이썬 3 셀레늄을 브라우저 : Safari는 바인딩 크롬과 파이어 폭스

나는에 대한 '는 .text'를 얻기 위해 전화를 걸 때 다른 텍스트가 반환 무엇입니까 처럼 보이는 범위 다음
클래스가하는 <span class='my-upper' href='some/url'> my link</span>
:
크롬과 파이어 폭스에 text-transform: uppercase;

내가 "내 링크"를 얻을 수 있지만, 사파리 11.0에서 나는 "내 링크"
를 얻을 수참고 : 소문자 및 선행 공백 이 HTML에서 정확한 값을 반환하고

중 하나가이 문제를 해결하는 방법에 대한 아이디어가 화면에 표시되지 것 같습니다.

덕분에 렌더링 된 텍스트를 구축 할 수있는 페이지

답변

0

크롬과 파이어 폭스 모두 주입 같은 script. Safari는이 스크립트에 의존하지 않는 것 같습니다.

driver.findElement(By.cssSelector("svg")).getAttribute("innerText") 

나 :

JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript("return arguments[0].innerText;", element); 

그러나이 속성은 모든 브라우저 및 반환 된 텍스트가 될 수 있다는 것을 구현되지 않은 점에 유의

하나의 옵션은 innerText 속성을 얻을 것 텍스트가 여러 텍스트 노드로 구성되어있는 경우 다른 특히 줄 바꿈에, 브라우저에 따라.

+0

감사합니다. 나는 원숭이 키 오프 브라우저 이름이나 설정 _w3c 요소 (사파리이 False로 설정처럼 다른 사람이 True를 설정하면서, 모양) 중 하나에 텍스트 방법을 패치합니다. 사파리 또 다른 해결 방법을 추가 (EC.visibility_of (자체)) 다른 브라우저가 작동'하지만, 오, 잘 시간 .until 내'WebDriverWait (self._parent, 10)를 좋아하지 않는 이유를 지금 해결합니다. – uprichard