2016-08-30 6 views
0

Ich benutze Sendkeys, um eine Datei hochzuladen, aber aus irgendeinem Grund ist es sehr inkonsistent. Ich habe zwei Szenarien, die eine Datei hochladen (eine Datei im Hauptfenster anhängen und dann eine Datei im zweiten Fenster anhängen). Wenn ich mein erstes Szenario verwende, das eine Datei im Hauptfenster anbringt, ohne eine Datei im zweiten Fenster anzuhängen, funktioniert das perfekt. Ich habe das selbe auch im zweiten Fenster getan und es funktioniert gut, aber wenn ich beide starte, werden die Sendkeys nicht meine exakte Zeichenfolge eingeben. hier ist der Code:Sendkeys ist in selen webdriver inkonsistent

AttachFileTA.cs:

IWebElement fileAttachTA = driver.FindElement(By.XPath("//object[@class='ruObject']")); 
fileAttachTA.Click(); 

     //Switch into the windows upload dialog 

     Thread.Sleep(1000); 
     SendKeys.SendWait(file); 
     Thread.Sleep(1000); 
     SendKeys.SendWait(@"{Enter}"); 
     Thread.Sleep(1000); 
     SendKeys.Flush(); 

Main.cs:

createDraftTA.FillGeneralInfo("This is a fourth positive test created from Selenium Webdriver"); 
addPrepaid.AddPrePaid("test", "Comment"); 

AddPrepaid.cs:

commentsBox.SendKeys("COMMENT");   
    CreateTANonProxy_Domestic attachFile = new CreateTANonProxy_Domestic(driver); 
    attachFile.AttachFileTA("\\Users\\My Documents\\file.txt"); 

FillGeneralInfo.cs

purposeBox.SendKeys(purpose); 
AttachFileTA("\\Users\\My Documents\\file.txt"); 

Was ist der beste Weg, um eine Datei hochzuladen?

Dank

Antwort

0

Zunächst einmal sieht aus wie Sie die SendKeys hier falsch verstanden haben. Bitte beachten Sie, dass in Ihrem Code C# -Klasse und keine Selen-Methode ist.

More about `SendKeys' class

SendKeys (C#) Klasse ist nicht zuverlässig für Windows-basierte Popup geben, wenn Sie es in Selenium verwenden. Versuchen Sie stattdessen, andere Alternativen zum Hochladen von Dateien zu verwenden. AutoIt tool. obendrauf, versuchen Sie herauszufinden, wie AutoIt funktioniert und implementieren Sie die Lösung für das Hochladen von Dateien in Selenium WebDriver.