2012-10-01 15 views
9

सेलेनियम रिमोट वेबड्राइवर का उपयोग करते समय मैं फ्लैश ऑब्जेक्ट्स को लोड करने में कैसे अक्षम करूं? यदि मैं सामान्य वेबड्राइवर के लिए समाधान प्राप्त करता हूं तो यह सहायक होगा।सेलेनियम रिमोट वेबड्राइवर में फ्लैश को अक्षम कैसे करें

अधिकांश मामलों में फ्लैश ऑब्जेक्ट को जावास्क्रिप्ट द्वारा लोड किया गया है, मैंने वेबड्राइवर और रिमोट वेबड्राइवर पर जावास्क्रिप्ट को अक्षम करने का प्रयास किया है, लेकिन यह काम नहीं करता है।

मैं द्वारा JavaScript को अक्षम करना करने की कोशिश की:

WebDriver driver = new FirefoxDriver(); 
((DesiredCapabilities) driver.getCapabilities()).setJavascriptEnabled(false); 

मैं भी करने की कोशिश की:

DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setJavascriptEnabled(false); 
WebDriver driver = new FireFoxDriver(caps); 

रिमोट WebDriver मैं करने की कोशिश की के लिए:

final DesiredCapabilities firefoxCapability = DesiredCapabilities.firefox(); 
firefoxCapability.setJavascriptEnabled(false); 
new RemoteWebDriver(new URL("http://" + windowsIP + ":4444/wd/hub"), firefoxCapability); 

ऊपर बयान के निष्पादन के बाद रिमोट सर्वर

प्रदर्शित करता है
Executing: [new session: <platform=ANY, javascriptEnabled=false, browserName=firefox, version=>] at URL:/session> 

लेकिन फिर भी सभी जावास्क्रिप्ट ड्राइवर लोड होने वाले पृष्ठों पर निष्पादित कर रहा है और फ्लैश भी लोड हो रहा है।

कृपया मेरी मदद करें: 1. फ्लैश लोड होने से कैसे रोक सकता है। 2. इसे दूरस्थ ड्राइवर पर चाहिए क्योंकि मुझे आईई, फ़ायरफ़ॉक्स, क्रोम पर पृष्ठों का परीक्षण करने की आवश्यकता है। इसलिए फोरफॉक्स प्रोफाइल लोड करना

सहायता के लिए धन्यवाद नहीं करेगा।

+0

क्या आपको कोई जवाब मिला? –

+0

आपको निश्चित रूप से @ टासवारखान द्वारा प्रदान किए गए उत्तर को स्वीकार करना चाहिए। – alecxe

उत्तर

4

मैं लिनक्स टकसाल पर इस कोड का इस्तेमाल किया और यह काम करता है की जाँच करें :

FirefoxProfile profile= new FirefoxProfile(); 
profile.setPreference("plugin.state.flash", 0); 
FirefoxDriver driver = new FirefoxDriver(profile); 
0

हालांकि यह पहले से ही अलग-अलग मंच पर सवाल लेकिन जवाब है ... तो मैं आप के लिए मजबूत होगा ...

मुझे यकीन है कि फ्लैश वस्तुओं जावास्क्रिप्ट द्वारा लोड कर रहे हैं नहीं कर रहा हूँ .... लेकिन अगर अक्षम करने जावास्क्रिप्ट है समस्या तब ...

फ़ायरफ़ॉक्स ड्राइवर के लिए जावास्क्रिप्ट को कभी भी अक्षम न करें, अगर आप अक्षम होने का उपयोग करना चाहते हैं तो HTMLUNITDRIVER के साथ प्रयास करें जो विशेष रूप से गैर-जावास्क्रिप्ट पृष्ठों के लिए है।

फ़ायरफ़ॉक्स ड्राइवर के महत्वपूर्ण भाग होने का कारण जावास्क्रिप्ट में लागू किया गया है और अक्षम करने से गंभीर चिंताएं हो सकती हैं। दूसरी ओर

HtmlUnitDriver सबसे तेज और स्वचालन परीक्षण के लिए सबसे अच्छा तरीका है (कोई जे एस के साथ पृष्ठों के लिए splly) है

इस समूह चर्चा https://groups.google.com/forum/?fromgroups=#!topic/webdriver/daLOzCiU_h4%5B1-25%5D

+0

उत्तर के लिए धन्यवाद। – Panshul

+0

उत्तर के लिए धन्यवाद।
1. मेरे पास कई पेज हैं जो जावा स्क्रिप्ट का उपयोग यूआरएल से फ्लैश मूवी को लोड करने के लिए करते हैं, इसलिए लोड होने से फ्लैश को रोकने के लिए मुझे जावा स्क्रिप्ट को बंद करने की आवश्यकता है।
2।HTMLunit के साथ मैं विभिन्न ब्राउज़रों (फ़ायरफ़ॉक्स, क्रोम, आईई) पर पृष्ठ का परीक्षण नहीं कर सकता, इस कारण से मैं दूरस्थ वेब ड्राइवर का उपयोग कर रहा हूं। – Panshul

+0

आपका स्वागत है :)। HTMLUnitdriver स्वयं एफएफ, आईई और क्रोम जैसे एक अलग ब्राउज़र है लेकिन जावा में कार्यान्वित किया गया है। यह आपको परिणाम देगा लेकिन सटीक नहीं होगा। _ मुझे पता है कि यह एक बेहतर समाधान नहीं है, लेकिन फ़ायरफ़ॉक्स के लिए आप फ्लैश अक्षम (इसलिए फ्लैशिंग फ्लैश) के साथ मैन्युअल रूप से प्रोफाइल बना सकते हैं और फिर रिमोट ड्राइवर के कई उदाहरणों के लिए उसी प्रोफ़ाइल का पुन: उपयोग कर सकते हैं। – Anuragh27crony

0

मुझे एक ही समस्या थी और इसे क्रोम के लिए हल करने की आवश्यकता थी। इस तरह मैंने इसे काम करने के लिए मिला:

ChromeOptions options = new ChromeOptions(); 
    options.addArguments("--disable-bundled-ppapi-flash"); 
    WebDriver webDriver = new org.openqa.selenium.chrome.ChromeDriver(options); 
संबंधित मुद्दे