2014-11-07 6 views
7

नया टैब खोलने के बाद (दूसरा) मैं पहले टैब पर स्विच करने की कोशिश कर रहा हूं।पिछले टैब पर प्रोटैक्टर स्विच

 common.clickOpenNewSession(); //it opens the new tab 

browser.getAllWindowHandles().then(function (handles) { 
    var secondWindowHandle = handles[1]; 
    var firstWindowHandle = handles[0]; 
    browser.switchTo().window(secondWindowHandle).then(function() { //the focus moves on new tab 
     browser.sleep(3000); 
     expect(browser.driver.getCurrentUrl()).toContain("url"); 
//do some actions 

    }); 
//below it doesn't work. I try to go back on previous tab without closing the second tab 
    browser.actions().sendKeys(protractor.Key.CONTROL).sendKeys(protractor.Key.TAB).perform(); 
    browser.sleep(4000); 
    browser.driver.switchTo().window(firstWindowHandle); 
    browser.setLocation('http://google.com'); 
}); 
+0

मुझे एक ही समस्या है, मैंने एक वचन में इसे समाहित करने के रूप में अलग-अलग दृष्टिकोण की कोशिश की, ब्राउज़र.switchTo() विंडो (टैब 1) .. कोई सफलता नहीं .. – Teodor

उत्तर

8

समस्या यह है कि आप Ctrl + Tab का उपयोग कर के बजाय का उपयोग कर खिड़की वापस स्विच करने के हैंडल द्वारा पिछले टैब पर जाने की कोशिश कर रहे है। यह WebDriver में समर्थित नहीं है, क्योंकि ctrl + टैब का उपयोग एक सिस्टम ऑपरेशन है, और सभी ओएस/ब्राउज़र के लिए आपके ब्राउज़र पर नकल नहीं किया जा सकता है। बस browser.switchTo() का उपयोग करें।

+0

क्या प्रोटैक्टर के माध्यम से एक टैब बंद करना संभव है? – Aaron

4

@Aaron यह कोड सभी ब्राउज़र हैंडल उपलब्ध कराता है और वादे को हल करता है। फिर टैब को एक <a href='newlink' target='_blank'>Link</a> द्वारा बनाई खोलता है: निश्चित रूप से

it("should open the first tab", function() { 
    browser.getAllWindowHandles().then(function (handles) { 
     browser.switchTo().window(handles[0]); 
    }); 
}); 

और,, बंद एक टैब:

POFile.buttonWithABlankTarget.click().then(function() { 
    browser.getAllWindowHandles().then(function(handles) { 
     var newTabHandle = handles[1]; 
     browser.switchTo().window(newTabHandle).then(function() { 
      // Expect the newly opened tab URL to equal the href of the invitation 
      expect(browser.driver.getCurrentUrl()).toContain("http://..."); 
     }); 
    }); 
}); 

एक ही फैशन में, आप टैब के बीच स्विच कर सकता है

it("should close the second tab and return to the first tab", function() { 
    browser.getAllWindowHandles().then(function (handles) { 
     // We currently are on the second tab... 
     browser.driver.close(); 
     browser.switchTo().window(handles[0]); 
    }); 
}); 

उम्मीद है की यह मदद करेगा!

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