10

द्वारा नियंत्रित किया जा रहा है मैं क्रोएशिया में सेरेनिटी बीडीडी (सेलेनियम) के साथ स्वचालित परीक्षण चला रहा हूं।क्रोम स्वचालित परीक्षण सॉफ्टवेयर

मुझे एक नया क्रोमड्राइवर डाउनलोड करना पड़ा, क्योंकि मेरे परीक्षण नहीं चल सके -> परीक्षण क्रोमड्राइवर खोल देगा लेकिन "उपयोगकर्ता के रूप में ब्राउज़ नहीं" कर सकता था। जब मैंने इस मुद्दे को गुमराह किया, तो उन्होंने कहा कि मुझे क्रोमड्राइवर अपडेट करना था।

इसलिए मैंने क्रोमड्राइवर को संस्करण 2.28 में अपडेट किया और मैंने क्रोम संस्करण को संस्करण 57.0.2987.98 में भी अपडेट किया।

लेकिन अब - हर बार मैं अपने परीक्षण चलाने के इस कष्टप्रद पाठ आता है:

क्रोम स्वचालित परीक्षण सॉफ्टवेयर

द्वारा नियंत्रित किया जा रहा है और यह मुझे पूछता है कि मैं पासवर्ड सहेजना चाहते हैं।

public class CustomChromeDriver implements DriverSource { 

    @Override 
    public WebDriver newDriver() { 
     try { 
      DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
      Proxy proxy = new Proxy(); 
      String proxyServer = String.format("AProxyIDontWantToDisplay", System.getenv("proxy.username"), System.getenv("proxy.password")); 
      proxy.setHttpProxy(proxyServer); 
      capabilities.setCapability("proxy", proxy); 
      ChromeOptions options = new ChromeOptions(); 
      options.addArguments(Arrays.asList("--no-sandbox","--ignore-certificate-errors","--homepage=about:blank","--no-first-run")); 
      capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
      ChromeDriver driver = new ChromeDriver(capabilities); 
      return driver; 
     } catch (Exception e) { 
      throw new Error(e); 
     } 
    } 

    @Override 
    public boolean takesScreenshots() { 
     return true; 
    } 
} 

मैं वहाँ जानते हैं कि यह एक है: (मैं चित्रों को जोड़ नहीं कर सकता क्योंकि मैं काफी "अंक" नहीं है)

पिछले संस्करण में, मैं द्वारा इन 2 बातें ब्लॉक करने के लिए सफल (A link to same issue), लेकिन बहुत सारे उत्तर हैं जो काम नहीं करते हैं।

कोई भी जो इसे जानता है उसे कैसे निकालना है?

+0

"स्वचालन द्वारा नियंत्रित" टेक्स्ट पॉप अप के बारे में: क्या कोई समस्या है जिसके कारण यह हो रहा है?मैं दूसरे दिन क्रोम ड्राइवर के साथ गड़बड़ कर रहा था और यह स्क्रीनशॉट, आदि नहीं दिखाया गया था, और कोई तत्व इंटरैक्शन मुद्दों का कारण नहीं बना रहा था। –

+0

वास्तव में नहीं, मेरे पास उस पॉप अप के तहत कुछ घटक हैं जो क्लिक किए जाने पर स्क्रीनशॉट में दिखाई नहीं देंगे। यही कारण है कि :) – BobbyB

+0

क्या यह यूआरएल नेविगेट करने और तत्वों पर बातचीत करने में सक्षम है? – NarendraR

उत्तर

5

"क्रोम स्वचालित परीक्षण सॉफ्टवेयर द्वारा नियंत्रित किया जा रहा है" टेक्स्ट पॉप अप: यह आपके परीक्षण को प्रभावित नहीं करेगा। और अन्य चीजों को संभालने के लिए (उदा: पासवर्ड सहेजें) आप नीचे दिए गए कोड को अपने कोड में जोड़ सकते हैं।

ChromeOptions options = new ChromeOptions(); 
Map<String, Object> prefs = new HashMap<String, Object>(); 
prefs.put("profile.default_content_settings.popups", 0); 
options.addArguments("disable-extensions"); 
prefs.put("credentials_enable_service", false); 
prefs.put("password_manager_enabled", false); 
options.setExperimentalOption("prefs", prefs); 
options.addArguments("chrome.switches","--disable-extensions"); 
options.addArguments("--test-type"); 
DesiredCapabilities cap = DesiredCapabilities.chrome(); 
cap.setCapability(ChromeOptions.CAPABILITY, options); 
cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT); 
System.setProperty("webdriver.chrome.driver",*path of chromedriver.exe*); 
wb = new ChromeDriver(cap); 

आशा है कि यह काम करेगा।

+1

यह समाधान जावा में उपयोग किए जाने पर अधिसूचना को प्रदर्शित होने से नहीं रोकता है। केवल 'options.addArguments (" अक्षम-infobars "); 'ठीक काम करता है –

+1

अधिसूचनाओं को अक्षम करने के लिए यह जोड़ें: विकल्प.addArguments (" - अक्षम-सूचनाएं "); –

19

विकल्प आप ड्राइवर को पारित करने के लिए इस जोड़ें:

options.addArguments("disable-infobars"); 
0
Map<String, Object> prefs = new HashMap<String, Object>(); 
//To Turns off multiple download warning 
prefs.put("profile.default_content_settings.popups", 0); 

prefs.put("profile.content_settings.pattern_pairs.*.multiple-automatic-downloads", 1); 

//Turns off download prompt 
prefs.put("download.prompt_for_download", false); 
        prefs.put("credentials_enable_service", false); 
//To Stop Save password propmts 
prefs.put("password_manager_enabled", false); 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("chrome.switches","--disable-extensions"); 
//To Disable any browser notifications 
options.addArguments("--disable-notifications"); 
//To disable yellow strip info bar which prompts info messages 
options.addArguments("disable-infobars"); 

options.setExperimentalOption("prefs", prefs); 
System.setProperty("webdriver.chrome.driver", "Chromedriver path"); 
options.addArguments("--test-type"); 
driver = new ChromeDriver(options); 
Log.info("Chrome browser started"); 
3

मई कोई Capybara के लिए इस की जरूरत है, Watir इस तरह होना चाहिए:

Capybara.register_driver :chrome do |app| 
    $driver = Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => [ "--disable-infobars" ]}) 
end 
0

किसी उपयोग कर रहा है रेल 5।1 +, जो परीक्षण संरचना थोड़ा और Capybara अब प्रणाली परीक्षण के लिए इस फ़ाइल में कॉन्फ़िगर किया गया है बदल दिया है:

application_system_test_case.rb 

आप इस तरह driven_by के लिए "आर्ग" विकल्प में जोड़ सकते हैं:

driven_by :selenium, using: :chrome, screen_size: [1400, 1400], options: { args: ["--disable-infobars"] } 
0

यह addArguments का उपयोग कर (सरणी ("अक्षम-इंफ़ोबार"))

इस के लिए है से मेरे लिए काम करता फेसबुक/php-webdriver

$options = new ChromeOptions(); 
    $options->addArguments(array("disable-infobars")); 
    $capabilities = DesiredCapabilities::chrome(); 
    $capabilities->setCapability(ChromeOptions::CAPABILITY, $options); 
    $this->driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities); 
1

disable-infobars मार्ग काम करते हैं, यह सभी मामलों (सुझाव here के रूप में) में जानकारी बार, बस नहीं मामला है कि ओ पी करने के लिए बात कर रहा है को दबाने की संभावना होगी। यह सबसे अच्छा है, और अगर आपको कुछ महत्वपूर्ण संदेश नहीं मिल रहा है तो भविष्य में अप्रत्याशित और निष्पक्ष व्यवहार हो सकता है।

मुझे लगता है कि यह से लाभ उठाने के लिए प्रदान की enable-automation स्विच अक्षम करने से बेहतर है यह अपने config/स्थापना के excludeSwitches क्षेत्र मेंdisable-inforbars के संबंध में कुछ नहीं कर रहे हैं। enable-automation स्विच का विवरण:

उपयोगकर्ताओं को सूचित करें कि उनके ब्राउज़र को स्वचालित परीक्षण द्वारा नियंत्रित किया जा रहा है।

nightwatch.conf.js के लिए यह कुछ इस तरह दिखेगा (और काम मेरे लिए): कि विशिष्ट परेशान संदेश से छुटकारा पाने:

desiredCapabilities: { 
    ... 
    chromeOptions: { 
    excludeSwitches: ['enable-automation'], 
    ... 
    } 
} 

यह केवल कर रहे हैं कि हम क्या करने के बाद करना चाहिए!

संपादित करें [2017-11-14]: अब यह एक और अधिक परेशान Disable Developer Mode Extensions अलर्ट/चेतावनी का कारण बन रहा है। मैंने हर प्रासंगिक दिखने वाले ध्वज/स्विच की कोशिश की है जो मुझे मिल सकती है जो मदद कर सकती है, लेकिन इसका कोई फायदा नहीं हुआ। मैंने क्रोमियम के साथ एक बग दायर किया है, इसलिए हम देखेंगे और अगर मैं एक संकल्प प्राप्त करता हूं तो मैं यहां से स्विंग करने की कोशिश करूंगा।

0

कोणमापक समाधान:

मैं यहां पहुंचे एक कोणमापक समाधान के लिए खोज, अगर किसी के लिए भी उपयोगी मैं ऊपर जवाब की मदद से, पाया;

capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
    'args': ['disable-infobars'] 
    } 
}, 

सक्षम का उपयोग करें: कोणमापक साथ आप Chrome विशिष्ट विकल्प को chromeOptions वस्तु, क्षमताओं के भीतर protractor.config फ़ाइल में वस्तु उपयोग में ऊपर चर्चा अक्षम-इंफ़ोबार विकल्प निम्नलिखित का उपयोग करने के लिए जोड़ सकते हैं, उदाहरण के लिए - ऑटोमेशन ने भी ऊपर चर्चा की:

capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
    'excludeSwitches': ['enable-automation'] 
    } 
} 

अक्षम-इन्फोबर्स को मेरी परिस्थितियों में प्राथमिकता दी जाती है।

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