복붙노트

[PYTHON] Selenium에서 Javascript 코드의 반환 값 얻기

PYTHON

Selenium에서 Javascript 코드의 반환 값 얻기

내 웹 사이트의 자동화 된 테스트를 위해 Selenium2를 사용하고 있으며 일부 자바 스크립트 코드의 반환 값을 얻을 수 있기를 바랍니다. 내 웹 페이지에 foobar () Javascript 함수가 있고이를 호출하여 파이썬 코드에 반환 값을 가져 오려면 어떻게해야합니까?

해결법

  1. ==============================

    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. ==============================

    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에있는 배열이 포함됩니다.

  3. from https://stackoverflow.com/questions/5585343/getting-the-return-value-of-javascript-code-in-selenium by cc-by-sa and MIT license