javascript - हरण - हिंदी में जावास्क्रिप्ट परिचय




सेलेनियम में जावास्क्रिप्ट कोड का वापसी मूल्य प्राप्त करना (2)

मैं अपनी वेबसाइट के कुछ स्वचालित परीक्षणों के लिए सेलेनियम 2 का उपयोग कर रहा हूं, और मैं कुछ जावास्क्रिप्ट कोड का रिटर्न वैल्यू प्राप्त करने में सक्षम होना चाहता हूं। अगर मेरे पास मेरे वेबपृष्ठ में एक foobar() जावास्क्रिप्ट फ़ंक्शन है और मैं उसे कॉल करना चाहता हूं और मेरे पायथन कोड में वापसी मान प्राप्त करना चाहता हूं, तो मैं इसे करने के लिए क्या कह सकता हूं?


मान return करने के लिए, execute_script() विधि, उदाहरण के लिए पारित स्ट्रिंग में return जावास्क्रिप्ट कीवर्ड का उपयोग करें

>>> 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'

यदि आप return var; जोड़कर नीचे दिए गए उदाहरण कोड में फ़ंक्शन के रूप में लिखे गए कोड के रूप में लिखे गए कोड को फिसलते हैं तो भी आप मान वापस कर सकते हैं 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 में URLs सरणी होगी।





selenium-webdriver