Заполняю форму, нужно загрузить в неё изображение
(вот скрин: Clip2Net — screen capture tool for Windows, Android, iPad, Mac, Linux , вот как это работает https://drive.google.com/file/d/0BzZGSrMh70MiQ1lrOHFLVWdkbjg/view?usp=sharing ), я воспользовался советом который нашёл здесь же среди тем ( upload_file/upload_file.java at master · tit/upload_file · GitHub ).
Получилось следующее:
public void fillCompanyData() throws InterruptedException {
explicitWait(By.xpath(".//*[@id='fotoFileUpload']/div[3]/div[2]/a"));
click(By.xpath(".//*[@id='fotoFileUpload']/div[3]/div[2]/a")); //нажимаю на ссылку для загрузки окна
explicitWait(By.xpath(".//*[@id='FileModel.Uploaded_TextBox0_Input']")); // жду появления поля для загрузки(здесь не дождётся)
wd.findElement(By.xpath(".//*[@id='FileModel.Uploaded_TextBox0_Input']")).sendKeys("//D:/Devel/java_Gradle_KK110917/kudkuda/src/test/resources/testpic.jpg"); //проделываю штуку из совета
click(By.id("btn34369986")); // жму "Загрузить"
}
В итоге тайм аут(ожидание у меня: visibilityOfElementLocated ) перед локатом поля для файла (By.xpath(“.//*[@id=‘FileModel.Uploaded_TextBox0_Input’]”))
Убрал ожидание - NullPointerException у него же.
Поискал нашел ещё один способ:
public void fillCompanyData() throws InterruptedException {
explicitWait(By.xpath(".//*[@id='fotoFileUpload']/div[3]/div[2]/a"));
click(By.xpath(".//*[@id='fotoFileUpload']/div[3]/div[2]/a")); //нажимаю на ссылку для загрузки окна
explicitWait(By.xpath(".//*[@id='FileModel.Uploaded_TextBox0_Input']")); // жду появления поля для загрузки(здесь не дождётся)
File file = new File("D:/Devel/java_Gradle_KK110917/kudkuda/src/test/resources/testpic.jpg");
wd.findElement(By.xpath(".//*[@id='FileModel.Uploaded_TextBox0_Input']")).sendKeys(file.getAbsolutePath());//проделываю новую штуку
click(By.id("btn34369986"));
}
Результат тот же, либо тайм аут, либо NullPointerException.
Может показаться что проблема в локаторе для элемента открывающего выбор файлов, и возможно так и есть, но я не понимаю у него же есть айди как он он может не найтись, вот еще скрин: Clip2Net — screen capture tool for Windows, Android, iPad, Mac, Linux
Или дело в том что он открывается как бы в окне, так в аналогичном случае, в подобном окне я уже заполнял текстовое поле, и всё находилось.
Опыта у меня мало. Уважаемые коллеги помогите пожалуйста разобраться в этой ситуации?