2017-01-20 2 views
0

get_attribute('innerHTML')으로 전화하여 마크 업을 문자열로 가져 오면 상대 URL을 절대 URL로 변환 할 수 있습니까?Selenium/Python : 상대 URL을 사용하여 모든 앵커 태그에 절대 URL을 삽입하는 방법은 무엇입니까?

이것은 내가

마지막 텍스트 element.get_attribute('href') 다른 시스템에 의해 사용되며, 내가 태그를 추가 할 수 없습니다 전화 상대 HREF 내용에 태그를 발생 않습니다.

get_attribute('innerHTML')에 기본 URL을 추가 할 수있는 옵션이없는 경우 어떻게 모든 상대 URL을 절대 URL로 변환 할 수 있습니까?

답변

0

JavaScript로 쉽게 수행 할 수 있습니다. 그런데

String relative = ...; // get the relative URL from somewhere... 
String absolute = (String) ((JavascriptExecutor) driver).executeScript("return (function(relative) { var a = document.createElement('a'); a.href = relative; return a.href; })(arguments[0])", relative); 

, 여기 (매개 변수 및 전달) WebDriver와 자바 스크립트를 실행에 대한 좀 더 많은 정보가있다 : Getting an absolute URL from a relative one. (IE6 issue)

그리고 WebDriver를 사용하는 것을 적용하는 방법이 자바 코드 : 실제 솔루션 여기를 참조하십시오 : How to use JavaScript with Selenium WebDriver Java

관련 문제