2014-03-28 2 views
3

selenium webdriver를 사용하여 파일을 업로드하고 싶습니다. 파일의 절대 경로를 사용하여 로컬 컴퓨터에서이 작업을 수행 할 수 있습니다. String filename = "C : \ Windows \ Temp \"+ "templatePMT.html"; Eclipse와 maven 프로젝트를 pom.xml과 함께 사용하고 있습니다. SVN에서이 프로젝트를 커밋합니다. Jenkins 소프트웨어를 사용하여 IE8에서 웹 앱 테스트를 실행합니다. Jenkins는 Red Hat 5.0에 배포됩니다. ---- 문제는 이것입니다 : ---- 절대 경로가 아닌 상대 경로를 사용하여 파일을 업로드하려면 어떻게해야합니까? 파일이 내 프로젝트의 리소스 폴더에 있습니다.Selenium webdriver 상대 경로를 사용하여 파일 다운로드 업로드

URL resource = Main.class.getResource("/templatePMT.html"); 
String absolutePath = Paths.get(resource.toURI()).toString(); 

답변

1

당신은 파일 탐지기를 보라 :

+0

안녕 얘들 아, 내가 오류있어 괜찮아! 그것은 단지 작은 하나입니다. 도와 주셔서 감사합니다. – Kazman

0

당신은 리소스 파일의 절대 경로를 얻을 수 있습니다. http://saucelabs.com/resources/selenium-file-upload

+0

안녕 얘들 아, 나는 당신의 제안을 시도했지만 작동하지 않습니다 ... 답변 주셔서 대단히 감사합니다. 이것은 내가이 지역 localy에서하는 일이며 작동합니다 : String filename = "C : /test.txt"; 파일 file = 새 파일 (System.getenv ("java.io.tmpdir"), 파일 이름); // 버튼을 클릭하여 파일 getWebDriver()를 찾습니다. findElement (By.id ("exportNegativeCreditAction_fichier")). sendKeys (file.getAbsolutePath()); // 파일을 업로드하려면 버튼을 클릭하십시오. getWebDriver(). findElement (By.id ("exportNegativeCreditAction_upload_boutonEnvoyer")). 원격 컴퓨터에서이 작업을 수행하는 방법을 보여 주시겠습니까? – Kazman

1

당신은뿐만 아니라 cssSelector를 사용하여 요소를 찾을 파일의 절대 경로를 얻으려면 다음 코드를 사용하고 또한 당신이 사용할 수있는 내용 String filePath = System.getProperty("user.dir") + "/src/res/test.pdf; driver.findElement(By.id("elementID")).sendKeys(filePath);

을 업로드 할 수 있습니다. 그러면 코드는 다음과 같습니다. driver.findElement(By.cssSelector("input[id='elementId']")).sendKeys(filePath); 여기에 더 정규식을 참조하십시오 Finding an element by partial id

참조 : Relative path of a file to upload a file

+1

고마워요. 이건 저에게 가까이 다가 왔습니다. 파이썬을 사용하여'os.path.abspath()'를 사용할 필요가있었습니다. 이 주석을 다른 파이썬 사용자를위한 빵 부스러기로 남겨주세요. – tvanfosson

관련 문제