javascript - سكربت - شرح جافا سكريبت




الحصول على قيمة الإرجاع من التعليمات البرمجية Javascript في السيلينيوم (2)

لإرجاع قيمة ، استخدم ببساطة الكلمة الأساسية 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'

أنا أستخدم Selenium2 لبعض الاختبارات التلقائية لموقع الويب الخاص بي ، وأود أن أتمكن من الحصول على قيمة الإرجاع الخاصة ببعض كود جافاسكريبت. إذا كان لدي وظيفة foobar() Javascript في صفحتي على الويب وأريد الاتصال بها والحصول على قيمة الإرجاع في رمز Python الخاص بي ، فماذا يمكنني الاتصال للقيام بذلك؟


يمكنك إرجاع القيم حتى إذا لم يكن لديك الشفرة المكتوبة كدالة كما هو موضح في شفرة المثال أدناه ، بإضافة فقط 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 لهذه الحالة.





selenium-webdriver