2017-12-11 47 views
9

प्रश्न उतना आसान है जितना। साइप्रस में, मैं परीक्षण चलाने के दौरान खुलने वाली एक नई विंडो तक कैसे पहुंच सकता हूं।एक नई विंडो तक पहुंचें - cypress.io

कदम से बनाना:

  1. परीक्षण चलाएं। कुछ कार्रवाई के बाद, नई विंडो पॉप अप (यूआरएल प्रकृति में गतिशील है)।
  2. नई विंडो में फ़ील्ड भरें, और कुछ बटन क्लिक करें।
  3. नई विंडो में आवश्यक क्रियाएं पूरी होने के बाद, नई विंडो बंद करें और मुख्य विंडो पर वापस जाएं।
  4. मुख्य विंडो के साथ निष्पादन जारी रखें। ब्याज की

प्वाइंट: फोकस होना चाहिए

main window -> new window -> main window 

मैं कुछ चीजें हैं जो iframe और confirmation box का उपयोग करने के लिए संबंधित हैं उन की अपनी कोई भी पढ़ा है, लेकिन यहाँ। एक पूरी नई विंडो तक पहुंचने से संबंधित है। सेलेनियम में Window Handlers की तरह कुछ। दुर्भाग्य से इससे संबंधित कुछ भी नहीं मिला।

उत्तर

8

साइप्रस के माध्यम से नई विंडो तक पहुंच अपने वर्तमान संस्करण में संभव नहीं है।

हालांकि, साइप्रस में इस कार्यक्षमता का परीक्षण करने के कई तरीके हैं। आप अपने परीक्षणों को अलग टुकड़ों में विभाजित कर सकते हैं और अभी भी विश्वास है कि आपका आवेदन शामिल है।

  1. जाँच करने के लिए कि अपने ऐप में क्रिया करने, window.open घटना cy.spy() का उपयोग कर एक window.open घटना के लिए सुनने के लिए द्वारा कहा जाता है एक परीक्षण लिखें।
cy.visit('http://localhost:3000', { 
    onBeforeLoad(win) { 
    cy.stub(win, 'open') 
    }) 
} 

// Do the action in your app like cy.get('.open-window-btn').click() 

cy.window().its('open').should('be.called') 
  1. एक नया परीक्षण, cy.visit() का उपयोग यूआरएल नई विंडो में खोला है कि करने के लिए जाने के लिए, फ़ील्ड भरें और क्लिक करें आपके जैसे बटन साइप्रस परीक्षण में होंगे।
cy.visit('http://localhost:3000/new-window') 

// Do the actions you want to test in the new window 

fullly काम कर परीक्षण उदाहरण here पाया जा सकता है।

+0

हम्म। चौराहे के रास्ते, लेकिन मुझे लगता है कि काम करता है। एक सवाल। मैं बटन क्लिक से यूआरएल कैसे प्राप्त करूं? यह मानते हुए कि प्रत्येक बार जब मैं इसे क्लिक करता हूं तो यूआरएल बदल जाता है। –

+0

'be.called' के बजाय आप 'be.called के साथ' का उपयोग कर सकते हैं और यूआरएल के बारे में जोर दे सकते हैं। मैंने यहां कामकाजी परीक्षणों का पूरा उदाहरण बनाया है: https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/stubbing-spying__window/cypress/integration/window-stubbing.spec .js –

+0

उम, अधिक मामलों में यह है कि: मुझे नई विंडो का यूआरएल पता नहीं है, मैं इसे गतिशील रूप से कैसे प्राप्त कर सकता हूं? मुझे लगता है कि यह उपलब्ध होने पर 'href' विशेषता प्राप्त हो सकती है? तो क्या ऐसे परिदृश्य के लिए'getgetribute 'फ़ंक्शन है? –

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