2014-09-15 9 views
11

Chrome और PhantomJS सेलेनियम ड्राइवर ब्राउज़र की ओर से चल रहे सभी चीज़ों को लॉग कर सकते हैं। ड्राइवर को प्रारंभ करते समय सेवा लॉग पथ निर्दिष्ट करके, आप नियंत्रित कर सकते हैं कि लॉग कहां लिखा जाएगा। जैसे क्रोम (अजगर में) के लिए:फ़ायरफ़ॉक्स के लिए वेबड्राइवर लॉग

from selenium import webdriver 

driver = webdriver.Chrome(service_log_path="/tmp/log") 
driver.get("http://www.google.com") 
driver.close() 

कोड को क्रियान्वित करने के बाद, /tmp/log फ़ाइल सेवा लॉग जो डीबगिंग के लिए उपयोगी है होते हैं:

[0.985][INFO]: Launching chrome: ... 
[2.620][INFO]: RESPONSE InitSession { 
    "acceptSslCerts": true, 
    "applicationCacheEnabled": false, 
    "browserConnectionEnabled": false, 
    "browserName": "chrome", 
    "chrome": { 
     "userDataDir": "/var/folders/yy/ppdg927x4zv8b0rbzg1f_jzh0000gn/T/.org.chromium.Chromium.ibsof9" 
    }, 
    "cssSelectorsEnabled": true, 
    "databaseEnabled": false, 
    "handlesAlerts": true, 
    "javascriptEnabled": true, 
    "locationContextEnabled": true, 
    "nativeEvents": true, 
    "platform": "Mac OS X", 
    "rotatable": false, 
    "takesHeapSnapshot": true, 
    "takesScreenshot": true, 
    "version": "37.0.2062.120", 
    "webStorageEnabled": true 
} 
[2.677][INFO]: Waiting for pending navigations... 
[2.696][INFO]: Done waiting for pending navigations 
[3.290][INFO]: Waiting for pending navigations... 
[4.338][INFO]: Done waiting for pending navigations 
[4.338][INFO]: RESPONSE Navigate 
[4.339][INFO]: COMMAND CloseWindow { 

} 
[4.451][INFO]: RESPONSE CloseWindow 

वहाँ एक रास्ता एक ही जानकारी प्राप्त करने के लिए है, लेकिन का उपयोग कर Firefox वेब ड्राइवर?

मैं क्या स्रोत कोड में देख से, दोनों Chrome और PhantomJS अप new servicessubprocess के माध्यम से आग और इसे करने के लिए --log-path तर्क गुजरती हैं। और ये सेवाएं लॉगिंग के लिए ज़िम्मेदार हैं। Firefox driver के लिए, यह कार्यान्वयन काफी अलग है और FirefoxBinary कक्षा पर आधारित है।

प्रदान किया गया उदाहरण और लिंक पायथन से संबंधित हैं, लेकिन सवाल बहुत सामान्य और भाषा-अज्ञेयवादी है। किसी भी पॉइंटर्स की सराहना करेंगे।

उत्तर

9

आप डेवलपर सुझावों के रूप में फ़ायरफ़ॉक्स प्रोफ़ाइल में प्रवेश विकल्पों को सेट करने के लिए है लिंक - https://code.google.com/p/selenium/wiki/DeveloperTips - कंसोल के लिए आप का उपयोग करना चाहिए लॉग इन करें:

FirefoxProfile p = new FirefoxProfile(); 
p.setPreference("webdriver.log.file", "/tmp/firefox_console"); 
WebDriver driver = new FirefoxDriver(p); 

ब्राउज़र लॉग के लिए, आप का उपयोग करना चाहिए

webdriver.firefox.logfile 

(https://code.google.com/p/selenium/wiki/FirefoxDriver)

उम्मीद है कि इससे मदद मिलती है।

+0

लॉग फ़ाइल एक क्रोम और फैंटॉमजेएस सेवाओं के रूप में विस्तृत नहीं है, लेकिन यह जानना अच्छा है और डीबगिंग में मदद करेगा। आपका बहुत बहुत धन्यवाद! – alecxe

+0

क्या आप क्रोम के लिए "ब्राउज़र लॉग" के लिए एक को जानते हैं? यानी webdriver.firefox.logfile लेकिन क्रोम के लिए। –

1

मुझे विश्वास है कि फ़ायरफ़ॉक्स के लिए लॉगिंग प्रोफ़ाइल के माध्यम से सक्षम होना चाहिए। जो बेस 64 एन्कोडेड होना चाहिए।

उन पंक्तियों के साथ कुछ in this bug raised against RemoteWebDriver का उल्लेख किया गया है।

कोई मदद?

संबंधित मुद्दे