2016-08-30 64 views
0

我使用sendkeys上傳文件,但由於某種原因,它非常不一致。我有兩種方案可以上傳文件(在主窗口上附加文件,然後在第二個窗口上附加文件)。如果我使用我的第一個場景,即在主窗口上附加文件而不在第二個窗口上附加文件,則此功能完美。我也在第二個窗口上做了同樣的工作,它工作正常,但是當我運行這兩個時,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"); 

什麼是上傳文件的最佳方式?

感謝

回答

0

首先,看起來就像你在這裏誤解了SendKeys。請注意,在您的代碼SendKeys是C#類,而不是Selenium方法。

More about `SendKeys' class

SendKeys(C#)類是不可靠的,因爲當你在使用硒遞給基於Windows的彈出窗口。代替它,請嘗試使用其他替代方法來上傳文件。 AutoIt tool。 ,試着找出AutoIt的工作方式並實施解決方案來處理Selenium WebDriver中的文件上傳。

相關問題