2015-10-08 7 views
12

एचटीएमएल कोड के बीच में मौजूद है पर क्लिक करें कैसेबटन जो पेज

<a href="" ng-click="select()" tab-heading-transclude="" class="ng-binding">RESUME</a>

समस्या: हमारे आवेदन में लिंक पर क्लिक करने के बाद, पृष्ठ में खोल रहा है नया टैब। उस नए पृष्ठ में मुझे फिर से शुरू करने वाले टैब पर क्लिक करना होगा (यह पृष्ठ के मध्य में है)।

मैं नीचे स्क्रॉल करें और उस टैब क्लिक करने के लिए है, लेकिन क्लिक कर पा रहा हूँ।

मेरे कोड:

browser.executeScript('window.scrollTo(0,250);'); 
element(by.partialLinkText("RESUME")).click(); 

कृपया मेरी मदद

+0

क्या एक ही होस्ट पर नई विंडो है? अन्यथा वही मूल नीति माता-पिता और बाल खिड़की के बीच जेएस बातचीत को रोकती है। उसी होस्ट पर –

+0

@ सेबेस्टियन एस नई विंडो। –

+0

@raghavendrat आपके लिए काम करने के नीचे दिए गए उत्तर नहीं है? अगर मुझे नहीं पता कि आप क्या समस्या का सामना कर रहे हैं। धन्यवाद –

उत्तर

5

नए टैब में स्विच भी तत्व पर क्लिक करने के प्रयास करने से पहले। बाद में, तत्व मौजूद होने तक प्रतीक्षा करें और ExpectedConditions उदाहरण और elementToBeClickable() प्रोटैक्टर में फ़ंक्शन का उपयोग कर क्लिक करने योग्य स्थिति में है। एक बार क्लिक करने योग्य स्थिति में एक click() कार्रवाई करें। हालांकि click() प्रोटैक्टर में फ़ंक्शन को स्क्रॉल करने की आवश्यकता के बिना पृष्ठ को स्वचालित रूप से स्क्रॉल करना चाहिए।

browser.getAllWindowHandles().then(function(handles){ 
    browser.switchTo().window(handles[1]).then(function(){ 
     var elem = element(by.partialLinkText("RESUME")); 
     browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000) 
     .then(function(){ 
      elem.click(); 
     }); 
    }); 
}); 

ऊपर कोड अभी भी क्लिक नहीं करता है तो वादा है कि कार्यों लौटने को हल करने से यह क्लिक करने से पहले स्क्रॉल लाइन में जोड़ सकता हूँ - यहाँ कैसे। यहां बताया गया है -

var elem = element(by.partialLinkText("RESUME")); 
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000) 
.then(function(){ 
    elem.getLocation().then(function(loc){ 
     browser.executeScript('window.scrollTo('+loc.x+','+loc.y+');').then(function(){ 
      elem.click(); 
     }); 
    }); 
}); 

आशा है कि इससे मदद मिलती है।

2

"हमारे आवेदन में लिंक पर क्लिक करने के बाद, पृष्ठ नए टैब में खोल रहा है" .... ब्राउज़र की नया टैब? पहले नए टैब पर स्विच करें। फिर उस बटन पर क्लिक करें। ब्राउज़र का प्रयास करें .getWindowHandles()। यह आपको एक सेट वापस कर देगा।

+0

@ गिरिश यह कोड फ़ायरफ़ॉक्स में क्रोम ब्राउज़र में ठीक काम नहीं कर रहा है .. कृपया मुझे बताएं कि फ़ायरफ़ॉक्स में इसे कैसे करें। धन्यवाद –

+0

@raghavendrat, एफएफ का कौन सा संस्करण? क्या यह संगत है? – asu

+0

मैंने नए संस्करण में अपग्रेड किया और अब यह ठीक काम कर रहा है। धन्यवाद –

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