JAVA - Селен скрытого класса - PullRequest
0 голосов
/ 19 марта 2020

Я новичок в селене и хочу нажать на поле для отправки файла. Я уже сделал целый код для подключения к странице, нажимаю на кнопки et c. (все работает, мой драйвер хорош)

Но невозможно нажать на добавление файла Я посмотрел на inte rnet как это сделать, я добавил время, попытался просмотреть кадры, использовал javascript для скрытый класс ... Я перепробовал все кнопки в поле, и он не обнаружил их.

Добавить файл

Исходный код

Thread.sleep(2000);
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("window.scrollBy(0,1000)");
WebDriverWait wait = new WebDriverWait(driver, 60);// 1 minute 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*@id=\"yui_3_17_2_1_1584634673387_348\"]/div[1]/div[1]/a")));`


org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="yui_3_17_2_1_1584634673387_348"]/div[1]/div[1]/a"}

У вас есть идея?

1 Ответ

0 голосов
/ 01 апреля 2020

Основная проблема, которую я наблюдал при просмотре кода, - это неправильный локатор в строке проверки элемента Explicit Condition. Его можно заменить следующим кодом:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='yui_3_17_2_1_1584634673387_348']/div[1]/div[1]/a")));

Basi c Синтаксис XPath для справки, хотя он имеет свои вариации:

//tagname[@attrbute='value']

Дополнительные советы Хотя я не уверен насчет приложения Вы автоматизируете, но идентификатор, вероятно, будет изменен. Исходя из структуры DOM, которую вы предоставили в приведенной выше ссылке, я бы сказал, измените локатор на что-то вроде:

 wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@role='button'][@title='Add..']")));
...