olegS
(olegS)
27.Август.2014 10:54:27
#1
Проблема с загрузкой файла
Использую Thucydides последней версии
делаю так:
newsPage.upload("src/test/resources/images2.jpg").to(newsPage.pictureForNews);
Picture
pictureForNews в моем случае ссылается на //input[@type=‘file’]
так же пробывал вот такой способ :
newsPage.pictureForNews.sendKeys(Loader.getResource("images2.jpg").getFile().substring(1).replace('/','\\'));
при этом рисунок лежит в папке с ресурсами
Результат в обоих случаях:
Caused by: org.openqa.selenium.NoSuchElementException: Element is not usable [[ChromeDriver: chrome on WIN8_1 (4831d8281cf34f7a446ff919dc18fb22)] -> xpath: //input[@type='file']]
а если заменить
to(newsPage.pictureForNews);
на
@FindBy(id="object_logo")
WebElement element;
public void loadLogoFrom(String filename)
{
upload("src/test/resources/images2.jpg").to(element);
}
как-то так
olegS
(olegS)
27.Август.2014 12:15:25
#3
аналогично
org.openqa.selenium.NoSuchElementException: Timed out after 30 seconds. Unable to locate the element: Element is not usable
полный путь к файлу не пробовал?
и сделать ожидание, пока попап с загрузкой открывается
Нажал.
Ждать.
Загрузить
olegS
(olegS)
27.Август.2014 12:47:01
#5
думаю тут дело не в пути а в том, что с элементом взаимодействовать нельзя
olegS
(olegS)
27.Август.2014 12:51:59
#6
System.out.println(newsPage.pictureForNews.isCurrentlyVisible()); выдало false
ArtOfLife
(Sergey Korol)
27.Август.2014 13:04:14
#7
Судя по всему input у вас спрятан. Т.е. вам нужно его вначале сделать видимым при помощи JS.
olegS
(olegS)
27.Август.2014 13:30:30
#8
ткните плиз носом на пример как инпут сделать видимым
ArtOfLife
(Sergey Korol)
27.Август.2014 13:45:39
#9
Что-то по типу:
executeJS("$('#elementId').css({ display: 'block !important', visibility: 'visible', 'width':'auto', height: 'auto'})");
где executeJS - обертка для стандартного селениумовского экзекьютора.
П.С. Тут придется поиграться с параметрами. Я не знаю, как у вас там прячут элемент.