2012-05-18 11 views
7

यदि ब्राउज़र विंडो फ़ोकस में नहीं है, तो वर्तमान पृष्ठ पर सभी वेबड्राइवर पहचान विफल हो जाती हैं।सुनिश्चित करें कि वेबड्राइवर द्वारा खोला गया ब्राउज़र हमेशा ध्यान केंद्रित करता है

वेबड्राइवर का उपयोग करके ब्राउजर को फोकस में कैसे लाया जा सकता है?

+0

क्या ब्राउज़र? फ़ायरफ़ॉक्स, आईई, क्रोम? –

+0

उदाहरण क्यों ध्यान केंद्रित नहीं करेगा? यदि आप सामान्य रूप से परीक्षण चलाने वाले कंप्यूटर पर काम करने की कोशिश कर रहे हैं, तो हाँ, यह अच्छी तरह से काम नहीं करेगा क्योंकि सेलेनियम ओएस मूल कीबोर्ड का उपयोग करता है और उन निर्देशों पर क्लिक करता है जिनके साथ आप हस्तक्षेप करेंगे। कभी-कभी, ['driver.switchTo() .defaultContent()'] (http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#defaultContent% 28% 2 9) (और/या 'स्विचटो() सक्रिय एलीमेंट() ') मदद करता है - ज्यादातर आईई पर। आपका उपयोग केस क्या है? –

उत्तर

6
((JavascriptExecutor) webDriver).executeScript("window.focus();"); 

चाल चलाना चाहिए!

+0

+1। बहुत आसन। मुझे एक बहुत ही भरोसेमंद एएचके लिपि लिखने से बचाता है। – nagytech

+0

मैं इंटरनेट एक्सप्लोरर 9 का उपयोग कर रहा हूं। मेरे लिए काम नहीं करता है। – tanvi

3

executeScript("window.focus();")

हालांकि मैं another question जो Chrome के इस संस्करण में काम करता है में एक हैक पाया (इस पोस्ट के समय v47) नवीनतम क्रोम में मेरे लिए काम नहीं किया।

जेनेरिक चरणों

, के बाद से सवाल सेलेनियम एपीआई भाषा निर्दिष्ट नहीं करता:, ब्राउज़र

  • में स्क्रिप्ट पर कार्य webdriverjs में चेतावनी
  • कार्यान्वयन स्वीकार करें द्वारा

    1. दिखाएँ चेतावनी जो मैं मैं

      const chrome = setupChromeWebdriver(); // get your webdriver here 
      
      chrome.executeScript('alert("Focus window")')) 
          .then(() => chrome.switchTo().alert().accept()); 
      
    1

    सेलेनियम 3.0 टा का उपयोग कर रहा हूँ केएस:

    ((IJavaScriptExecutor)po.WebDriver).ExecuteScript("window.focus();"); 
    
    +1

    इसका मतलब यह नहीं है कि ब्राउज़र विंडो को वास्तविक फोकस मिलेगा, यानी यह गारंटी नहीं देता है कि ब्राउज़र विंडो ओएस स्तर पर सक्रिय होगी; ऐसे मामले हैं जहां यह केवल ओएस स्तर 'ध्यान' संदेश ट्रिगर करेगा। – cprn

    0

    यह मेरे लिए काम करता है। ब्राउज़र खोलने वाले कोड के बाद, इस स्निपेट को जारी करें:

    String window = driver.getWindowHandle(); 
    ((JavascriptExecutor) driver).executeScript("alert('Test')"); 
    driver.switchTo().alert().accept(); 
    driver.switchTo().window(window); 
    
    संबंधित मुद्दे