2009-12-28 3 views
0

Je veux automatiser la page en utilisant l'automatisation du navigateur Web.Comment faire pour obtenir l'élément d'Iframe?

Dans le iframe il y a seulement une iframe à la valeur d'exécution vient à cette iframe.

lorsque je tente d'obtenir la valeur de trame I ne retourne que l'iframe pas tout de page html,

Je veux cliquer sur un href i cadre.

S'il vous plaît aidez-moi à résoudre ce problème Je suis le code.

HtmlDocument dd = (HtmlDocument)loginBrowser.Document.GetElementById("UIFrame"); 

Répondre

0

Essayez

HtmlDocument.contentWindow.body 

Je ne sais pas de C# et ce que vous faites (je suis un homme PHP surtout ces jours-ci), mais il me semble que vous jetant un élément iFrame à un type HTMLDocument ? Cela peut être faux, car l'élément IFrame n'est pas identique au body. Ce casting est-il vraiment nécessaire? Peut-être le cast à un HTMLElement à la place?

0

Vous voulez probablement

HtmlDocument.Body 

http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument_members.aspx

le corps est un HtmlElement, qui a des propriétés pour le InnerHtml et InnerText, si vous voulez rechercher des données renvoyées dans le document IFrame .

Voir ce qui suit pour en savoir plus sur HtmlElement http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement.aspx

, êtes-vous sûr que vous voulez également être coulée à HtmlDocument? En regardant MSDN, il semble que GetElementById() devrait retourner un HtmlElement.

+0

J'ai essayé mais son contenu ne montrant pas iframe –

0

Si jQuery est disponible dans votre site Web cible puis essayez ceci:

browser.Document.InvokeScript("eval", new object[] { "$(\"#iframe_id\").contents().find('#element').html())" }); 
Questions connexes