2015-10-16 37 views
0

我的情況是,我正在自動化測試文件上傳功能。現在自動化ci在另一臺機器/盒子上工作,並且瀏覽器在另一臺機器上打開以進行自動化測試。我能夠打包(添加測試輸入文件上傳)在罐子裏。但是,如上所述,該jar在另一臺機器中,並且瀏覽器位於另一臺機器中。由於瀏覽器機器在自動化運行時沒有被修復和拾取,所以我怎麼能夠在瀏覽器運行的機器上獲得需要上傳的輸入文件。使用sendKeys上傳文件的文件

我試圖在從jar中提取文件之後複製文件,但顯然它不會從瀏覽器上傳的位置拷貝到瀏覽器中。

這個文件甚至有可能在瀏覽器機器中可用嗎?

+0

請更改問題標題有關您實際要求的東西。 – JeffC

+0

@JeffC肯定,像遠程盒子文件上傳的東西? –

+0

類似於「如何自動將輸入文件傳輸到運行腳本的遠程計算機?」 – JeffC

回答

0

您可以做的一件事就是將上傳文件放入可從所有正在運行的計算機中訪問的共享文件夾中。並從共享文件夾中提供文件位置。 你可以給SendKeys命令的上傳字段像下面

upload_textfield.sendKeys("\\shared_Folder\upload.txt") 
+0

感謝調試器。聽起來是一種很好的替代方法。 –

0

靜態webdriver的驅動程序; 公共靜態無效的主要(字串[] args)拋出InterruptedException的,FindFailed {

System.setProperty("webdriver.gecko.driver", "E:\\doftware\\geckodriver-v0.10.0-win64\\geckodriver.exe"); 
    driver =new FirefoxDriver(); 
    driver.get("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1"); 

    driver.findElement(By.id("Email")).sendKeys("emailaddress"); 
    driver.findElement(By.id("next")).click(); 
    Thread.sleep(500); 
    driver.findElement(By.id("Passwd")).sendKeys("Password"); 
    driver.findElement(By.id("signIn")).click(); 
    Thread.sleep(5000); 
    driver.findElement(By.xpath("//div[@class='T-I J-J5-Ji T-I-KE L3']")).click(); 
    Thread.sleep(500); 
    driver.findElement(By.xpath("//div[@class='a1 aaA aMZ']")).click(); 

    org.sikuli.script.Pattern open= new org.sikuli.script.Pattern("C:\\Users\\narendra\\Desktop\\test\\filename.PNG"); 
    org.sikuli.script.Pattern open1= new org.sikuli.script.Pattern("C:\\Users\\narendra\\Desktop\\test\\open.PNG"); 

    org.sikuli.script.Screen scr= new org.sikuli.script.Screen(); 
    scr.setAutoWaitTimeout(30); 
    scr.type(open, "C:\\Users\\narendra\\Desktop\\test\\searchButton"); 
    scr.click(open1); 
+0

請編輯更多信息。僅限代碼和「嘗試這個」的答案是不鼓勵的,因爲它們不包含可搜索的內容,也不解釋爲什麼有人應該「嘗試這個」。 – abarisone

+0

對不起,我已經使用sikuli API在Gmail上進行文件上傳,而不是使用autoIT,U可以試試這個代碼,這很容易。 –