2011-01-09 4 views
1

Ich versuche, Daten in Textbereich zu platzieren, der innerhalb versteckter Eingabe ist, aber watin findet es nicht. Wattin; Element durch ID nicht funktionieren

Als ich für die Eingänge mein Programm zu suchen zeigt dies:

alt text

var ie = new WatiN.Core.IE("http://facebook.com", true); 
ie.ClearCookies();         ie.TextField(WatiN.Core.Find.ById("email")).TypeText(textBoxUsername.Text);      ie.TextField(WatiN.Core.Find.ById("pass")).TypeText(textBoxPassword.Text); 
ie.Button(WatiN.Core.Find.ByValue("Login")).Click(); 
ie.Link(WatiN.Core.Find.ByText("Status")).Click();     
        ie.TextField(WatiN.Core.Find.ById("u362110_11")).TypeText(textBoxPassword.Text); 

Exception

Could not find INPUT (hidden) or INPUT (password) or INPUT (text) or INPUT (textarea) or TEXTAREA element tag matching criteria: Attribute 'id' equals 'u493403_13' at http://www.facebook.com/home.php 
+0

Bitte zeigen Sie uns Ihren Code. – SLaks

+1

Der obige HTML-Code hat keine ID ("u493404_13") Sind Sie sicher, dass der HTML-Code und der Code korrekt sind? Es ist sehr schwer, Ihren HTML-Code zu lesen, so ist es möglich, dass ich es verpasst habe – Sparky

+0

Textbereich ID ändert sich als Seite neue Lasten ..... –

Antwort

4

habe es funktioniert durch ID ersetzt durch namentlich die Suche, weil id dynamisch war und geändert die ganze Zeit

+0

setzen Wenn es irgendeine Konsistenz für einen Teil von die IDs, die dynamisch generiert werden, könnten Sie auch Regex verwenden, um mit Find.ById –

+0

+1 zu entsprechen Dies war nicht genau, was mir geholfen hat. Aber ich ging zurück und schaute noch einmal auf meinen Code, nachdem ich alle möglichen anderen unordentlichen Antworten ausprobiert hatte, und es war, weil ich Find.ByName (("Field")) anstelle von Find.ByName (tableRow ["Field"]) verwendet habe. Ja, das stimmt, ein Keyword und quadratische Klammern kosten mich Tage der Arbeit. Immer noch lebst und lernst du! Prost. :-) –