2016-08-30 2 views
0

私はsendkeysを使用してファイルをアップロードしていますが、何らかの理由で非常に矛盾しています。ファイルをアップロードする2つのシナリオがあります(メインウィンドウにファイルを添付してから2番目のウィンドウにファイルを添付します)。私が第2のウィンドウにファイルを添付せずにメインウィンドウにファイルを添付している最初のシナリオを使用すると、これは完全に機能します。私も2番目のウィンドウで同じことをして、それは正常に動作しますが、私は両方を実行すると、sendkeysは私の正確な文字列にキーを入れません。ここでのコードは次のとおりです。Sendkeysがselenium webdriverで矛盾しています

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"); 

ファイルをアップロードする最も良い方法は何ですか?あなたがここにSendKeysを誤解しているよう

おかげで、すべての

答えて

0

まず、見えます。あなたのコードでSendKeysはC#クラスであり、セレンメソッドではありません。

More about `SendKeys' class

SendKeys(C#)クラスあなたはセレンでそれを使用するときにポップアップをベース窓を渡すために信頼性がありません。代わりに、ファイルアップロードのために他の代替手段を使用してみてください。 AutoIt tool。 これに加えて、AutoItの動作方法を見つけて、Selenium WebDriverでのファイルアップロードを処理するソリューションを実装してください。