2016-06-23 11 views
1

Ich verwende Selenium Chrome-Treiber, um eine Webanwendung im Chrome-Browser zu automatisieren. Ich erhalte ein Eingabeaufforderungs-Popup, in dem ich keinen Wert eingeben kann. Hier ist die Code-Eingabeaufforderungsbox-Wert kann nicht mit Selenium Chrome-Treiber festgelegt werden

chromeDriver.SwitchTo().Alert().SendKeys("Some value"); 

Der Code erfolgreich ausgeführt, aber es ist kein Wert in der Textbox gesetzt, innerhalb der Prompt Box. Obwohl ich den Textwert des Prompt-Box zu bekommen bin in der Lage mit diesem code-

chromeDriver.SwitchTo().Alert().Text; 

Mein Chrome-Version is- 46.0.2490.80

Jede Idee, warum es nicht funktioniert?

+1

Könnten Sie auch Prompt Box Popup-Code teilen ?? –

+0

Leider habe ich keinen Zugriff auf den Web-App-Code für die Prompt-Box. Es ist eine Drittanbieter-App, die ich zu automatisieren versuche. Aber es ist wie eine normale Eingabeaufforderungsbox mit einer Textbox für eine Eingabe und OK und Abbrechen-Schaltflächen. –

+0

Mit Prompt Box sprechen wir eine JS Prompt Box oder etwas mit HTML? Es sieht aus wie eine JS-Box, da .Alert() funktioniert, aber ich wollte bestätigen (und Sie möchten dies in Ihrer Frage nur für mehr Klarheit angeben). – JeffC

Antwort

1
try 
    { 
     IAlert alert = driver.SwitchTo().Alert(); 
    if (alert != null) 
    { 
     alert.SendKeys("Some value"); 
     alert.Accept(); 
    } 
} 
catch (Exception ex) { } 
+1

Dies funktioniert! Inzwischen habe ich gerade entdeckt, dass mein vorheriger Code auf die gleiche Weise funktioniert. Das einzige Problem ist, dass in der Eingabeaufforderungsbox keine Werte angezeigt werden. Kann es sein, dass es intern passiert? Ich habe gerade darum gekämpft zu sehen, warum es keinen Wert gibt, der in das Eingabefeld in der Eingabeaufforderung eingegeben wird. Das Problem ist jetzt behoben. –

0

Versuchen Sie, diese

chromeDriver.switchTo().activeElement().sendKeys("Some value"); 
+0

Es gibt unter exception- bei OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (Antwort Error) bei OpenQA.Selenium.Remote.RemoteWebDriver.Execute (String driverCommandToExecute, Dictionary'2 Parameter) bei OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute (String driverCommandToExecute, Dictionary '2 Parameter) bei OpenQA.Selenium.Remote.RemoteTargetLocator.ActiveElement() –