Не удается повторно использовать функцию исполнителя javascript для загрузки нескольких загружаемых файлов

#java #selenium #script

Вопрос:

У меня есть одна страница, где мне нужно загрузить файл xlsx 10 раз. у меня есть разные кнопки для каждой загрузки файла. Я написал код для нажатия на элемент. но это работает только один раз. когда я вызываю ту же функцию для второй загрузки. это не работает.

 public void safeJavaScriptClick(WebElement element) throws Exception {  try {  if (element.isEnabled() amp;amp; element.isDisplayed()) {  System.out.println("Clicking on element with using java script click");   ((JavaScript Executor) SeleniumDriver.getDriver()).executeScript("arguments[0].click();", element);  } else {  System.out.println("Unable to click on element");  }  } catch (StaleElementReferenceException e) {    System.out.println("Element is not attached to the page document "  e.getStackTrace());  } catch (NoSuchElementException e) {  System.out.println("Element was not found in DOM "  e.getStackTrace());  } catch (Exception e) {`enter code here`  System.out.println("Unable to click on element "  e.getStackTrace());  } }  

Комментарии:

1. в чем заключается ошибка, которую вы получаете?

2. Привет. Я не получаю никаких ошибок. Я хочу повторно использовать вышеуказанную функцию 10 раз. но это работает только один раз. второй раз не делаю щелчок

3. и у вас нет выхода ?

Ответ №1:

Какое сообщение об ошибке вы получаете? Я предполагаю, что вы продолжаете ссылаться на первый элемент для загрузки.

 ((JavaScript Executor) SeleniumDriver.getDriver()).executeScript("arguments[0].click();", element);  

А именно аргумент[0]… Это может быть идея, но вы проверяли кнопки на каждой странице? Я предполагаю, что все они указывают на одну и ту же функцию.

Комментарии:

1. Я не получаю никаких ошибок. У меня есть страница, где у меня есть 10 кнопок загрузки файла. в каждой кнопке мне нужно загрузить другой файл. Поэтому я написал эту функцию и просто вызываю все остальные 9 кнопок загрузки файла. таким образом, эта функция работает один раз. я не могу повторно использовать. помогите мне, какие изменения я должен внести в код, чтобы эту функцию можно было повторно использовать для других 9 кнопок . Спасибо

2. Да, я вызывал одну и ту же функцию два раза, но она все равно не работала. Я не получаю никаких ошибок. это просто загрузка файла только один раз

Ответ №2:

Это было решено с помощью

 new Actions(SeleniumDriver.getDriver()).click(UploadFiles.BSR_ChooseFile).build().perform();  

ЗагружАемые файлы.BSR_ChooseFile-Xpath