2012-04-09 3 views
0

Ich schreibe eine Webseite, die den Selenium WebDriver verwendet, um den Inhalt einer Eingabe auf einer anderen Seite abzurufen.Selen Javascript wird Wert nicht abrufen

Dies ist das Eingabefeld auf der Seite I Info abrufen möchten aus:

<input id="ReviewProposal_OwnerName" name="ReviewProposal.OwnerName" readonly="readonly" type="text" value="" /> 

Dies ist das Skript, das die Eingabe auf der Seite I Info abrufen aus wollen zuordnet:

$('#ReviewProposal_OwnerName').val(data.Owner1); 

den Wert abzurufen, ich schrieb, nachdem er mit meinem Fahrer auf die Seite der Navigation:

IJavaScriptExecutor js = driver as IJavaScriptExecutor; 

IWebElement nameOfOwnerField = driver.FindElement(By.Id("ReviewProposal_OwnerName")); 

string title = (string)js.ExecuteScript("return $('#ReviewProposal_OwnerName').val();"); 
output.InnerText += title; 

die Ausg ut ist ein div auf der Seite, die ich geschrieben habe.

Obwohl Text in dem Eingabefeld auf der Seite angezeigt wird, wenn ich versuche, es über meinen Code abzurufen, erhalte ich immer eine leere Zeichenfolge. Wenn ich das Eingabefeld in Firebug anschaue, wird der Text im Browser angezeigt, auch wenn der Wert im Debugger als leer markiert ist. Was mache ich falsch?

+1

Sorry, habe mit Webdriver noch nicht viel gearbeitet, aber hast du versucht 'string title = driver.FindElement (By.Id (" ReviewProposal_OwnerName ")). GetAttribute (" value ");' anstatt Javascript zu benutzen? –

Antwort

0

Vielleicht liegt es daran, dass Ihre Eingabe schreibgeschützt ist und jQuery seinen Wert einfach nicht festlegen kann.