Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Динамическое создание Web элементов



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Динамическое создание Web элементов
2015-12-29 00:22

При помощи WebDriver открываю web страницу и далее используя javascript  создаю на ней элемент типа textarea, а затем обращаюсь к нему при помощи driver.findElement. При этом возникают следующие проблемы:

 

1. Если элемент создается при помощи скрипта

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('body').innerHTML = \"<textarea id='log' " +
                 "style='width:300px;height:200px;'>Log monitor</textarea>\"; log.value = 'Текст для вывода'; ");

то он успешно отображается на странице, может быть использован и находится при помощи WebElement element = driver.findElement(By.id("log")). Однако, при этом убиваются другие элементы на странице.

 

2. Если элемент создается при помощи скрипта

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("var textarea = document.createElement('textarea'); "              +
                 "textarea.innerHTML = \"<textarea id='log' "                       +
                 "style='width:30px;height:20px;'>Log monitor</textarea>\"; "       +
                 "document.body.appendChild(textarea); textarea.value = 'Текст для вывода';");

то он тоже отображается на странице, не убивает другие элементы, однако уже не находится при помощи WebElement element = driver.findElement(By.id("log")).

 

Можно ли сделать так, чтобы с одной стороны, созданный динамически элемент не причинял вреда уже существующим на странице элементам, а с другой стороны, был доступен WebDriver и обнаруживался ним при помощи WebElement element = driver.findElement(By.id("log"))?



© 2010 | Software-Testing.Ru


В избранное