Donc maintenant, j'essaie de comprendre comment je peux passer à la mise au point sur un cadre dans Selenium 2 lorsque le cadre n'a aucun nom ni identifiant? Pour un cadre nommé, je fais: mais qu'est-ce qu'il n'y a pas de nom? Quelqu'un a-t-il eu de l'expérience avec cela? P> p>
5 Réponses :
en sélénium Si vous savez que l'emplacement relatif de la trame, vous devriez pouvoir utiliser la commande SelectFrame avec la chaîne "Relative = up" pour déplacer un cadre par exemple. selenium.selectFrame ("Relative = up"); code> ou pour passer à l'écran supérieur Utilisez "Relative = TOP" P>
Savez-vous si cela existe à Selenium 2?
pilote.switchto.frame () est Surchargé pour accepter un nom de cadre ou un entier . Cet int est un index basé sur les cadres disponibles. La première image serait 0, la seconde 1 et ainsi de suite.
Je viens de lancer un test vraiment rapide à l'aide de la liaison Java et de Firefox contre cette page HTML. P>
<html> <frameset rows="50%,50%"> <frame src="frame_a.htm" /> <frame src="frame_b.htm" /> </frameset> </html>
Vous pouvez utiliser l'index du cadre. Puisque vous n'avez pas de nom et d'identité pour le cadre, Driver.Switchto (). Cadre (intgradindex) p>
Vous pouvez simplement donner l'identifiant de votre iframe au lieu de nom iframe.
S'il vous plaît voir mon exemple ci-dessous, cela a fonctionné pour moi.
Dans l'exemple, je passe à une iframe dans ma page et en cliquant sur l'élément dans cet iframe, qui est "feuille de calcul0". P>
Utilisez le code: p>
< iframe id="topframe" height="83px" frameborder="0" width="100%" scrolling="NO" '1331808552380'"="" +="" src="initialize.do?init=header&cacheBuster=" name="topframe" marginheight="0" marginwidth="0">
En plus de l'utilisation de l'index (comme les autres réponses suggèrent), dans C # strong> Vous pouvez sélectionner l'iframe par TagName. Mon exemple suppose qu'il y a un et un seul iframe sur la page. Remarque: Vous devez obtenir les informations de l'iwebelement .text ou .Click par exemple, avant d'appeler Driver.Switchto ( ) .DefaultContent (); p> J'ai créé ces méthodes d'extension pour aider p> un exemple d'utilisation des extensions: p> public void ClickPrintButton()
{
var iFrameDriver = Browser.Driver.SwitchToIFrame();
try
{
iFrameDriver.FindElement(By.Id("saveButton")).Click();
}
finally
{
Browser.Driver.SwitchOutOfIFrame();
}
}
Vous pouvez simplement donner l'identifiant de votre iframe au lieu d'iframe-nom s'il vous plaît voir mon exemple ci-dessous, cela a fonctionné pour moi.