[PYTHON] Selenium에서 Javascript 코드의 반환 값 얻기
PYTHONSelenium에서 Javascript 코드의 반환 값 얻기
내 웹 사이트의 자동화 된 테스트를 위해 Selenium2를 사용하고 있으며 일부 자바 스크립트 코드의 반환 값을 얻을 수 있기를 바랍니다. 내 웹 페이지에 foobar () Javascript 함수가 있고이를 호출하여 파이썬 코드에 반환 값을 가져 오려면 어떻게해야합니까?
해결법
-
==============================
1.값을 반환하려면 execute_script () 메서드에 전달 된 문자열에서 return JavaScript 키워드를 사용하십시오.
값을 반환하려면 execute_script () 메서드에 전달 된 문자열에서 return JavaScript 키워드를 사용하십시오.
>>> from selenium import webdriver >>> wd = webdriver.Firefox() >>> wd.get("http://localhost/foo/bar") >>> wd.execute_script("return 5") 5 >>> wd.execute_script("return true") True >>> wd.execute_script("return {foo: 'bar'}") {u'foo': u'bar'} >>> wd.execute_script("return foobar()") u'eli'
-
==============================
2.아래의 예제 코드처럼 함수로 작성된 코드를 잘라내 지 않은 경우에도 반환 값 var를 추가하여 값을 반환 할 수 있습니다. 끝에 var는 반환하려는 변수입니다.
아래의 예제 코드처럼 함수로 작성된 코드를 잘라내 지 않은 경우에도 반환 값 var를 추가하여 값을 반환 할 수 있습니다. 끝에 var는 반환하려는 변수입니다.
result = driver.execute_script('''cells = document.querySelectorAll('a'); URLs = [] console.log(cells); [].forEach.call(cells, function (el) { if(el.text.indexOf("download") !== -1){ //el.click(); console.log(el.href) //window.open(el.href, '_blank'); URLs.push(el.href) } }); return URLs''')
result에는이 경우 URL에있는 배열이 포함됩니다.
from https://stackoverflow.com/questions/5585343/getting-the-return-value-of-javascript-code-in-selenium by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬을 사용하여 한 쌍의 비선형 방정식을 푸는 방법? (0) | 2018.10.04 |
---|---|
[PYTHON] dict를 적절하게 서브 클래스 화하고 __getitem__ & __setitem__을 재정의하는 방법 (0) | 2018.10.04 |
[PYTHON] 파이썬에서 목록의 중간 값 찾기 (0) | 2018.10.04 |
[PYTHON] 파이썬 HTTP 연결에 인증 된 프록시를 지정하는 방법은 무엇입니까? (0) | 2018.10.04 |
[PYTHON] 파이썬으로 목록이나 배열로 텍스트 파일을 읽는 법 (0) | 2018.10.03 |