2010-01-25 8 views
4

J'écris des extensions utilisateur au sélénium. J'ai l'objet document. Comment puis-je obtenir l'objet window de la fenêtre qui contient mon document?javascript/selenium: récupère la fenêtre de l'objet document

PageBot.prototype.locateElementByMyLocator= function(text, inDocument) { 
    // I want the window here 
} 
+0

Comment avez-vous trouvé l'objet document en premier lieu? Je semble incapable de le récupérer pendant le test ... –

Répondre

4

Dans IE c'est document.parentWindow; dans Mozilla c'est document.defaultView.

Ainsi vous pourriez faire quelque chose comme

function getDocWindow(doc) { 
    return doc.parentWindow || doc.defaultView; 
} 
4

Si vous écrivez votre propre extension, vous pouvez obtenir un objet fenêtre Sélénium en allant

Selenium.prototype.doExtensionStuff(){ 
    var doc = this.browserbot.getUserWindow().document; //This returns the document that Selenium is using 

} 

Ceci est considéré comme une meilleure façon de faire et fonctionnera sur n'importe quel navigateur puisque Selenium s'occupe de la nastilité du navigateur