답변:
값을 반환하려면 메서드에 return
전달 된 문자열에 JavaScript 키워드를 사용하십시오.execute_script()
>>> 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'
None
return_value = wd.execute_script("return {foo: 'bar'}")
나중에 프로그램에서 사용할 반환 값을 저장합니다.
아래 예제 코드와 같이 코드를 함수로 작성하지 않은 경우에도 return 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
URLs
이 경우 배열이 포함됩니다 .