Как достучаться до всех элементов формы
На страничке имеется форма, у формы нет id, нет никаких атрибутов, кроме action и method. Мне нужно проверить цвет у ВСЕХ элементов формы, не перебирая их явно (элементов куча, input select checkbox и т.д.). как "достать" из формы все элементы? Всё делаю в Selenium IDE через command: storeEval | command: мой "скрипт" | target | myResult (хотя думаю в чём делаю, не столь важно)
Что я пробовал: 1. window.document.defaultView.getComputedStyle(windo w.document.getElementsByTagName('form')).getProper tyValue('background-color'); Ошибка: [error] Threw an exception: Could not convert JavaScript argument arg 0 [nsIDOMWindow.getComputedStyle] 2 (с присваиванием id форме). window.document.getElementsByTagName('form')[0].id = "myForm" ; window.document.defaultView.getComputedStyle(windo w.document.myForm.getElementsByTagName('*')).getPr opertyValue('background-color'); Ошибка: [error] Threw an exception: window.document.myForm is undefined 3. var myForm = document.getElementsByTagName('form')[0]; var children = myForm.childNodes; Ошибка: [error] Threw an exception: myForm is undefined 4. window.document.getElementsByTagName('form')[0].id = "myForm" ; var children = document.myForm.getElementsByTagName('*'); такая же ошибка: [error] Threw an exception: document.myForm is undefined Помогите, пожалуйста. Пробовал и через .setArrtibute |
var form = document.forms[0], // 0 - какая по счету форма на странице, в данном случае первая. elements = form.elements, getStyle = function (domNode){ return window.getComputedStyle(domNode, null); }; for(var i = 0, len = elements.length; i < len; i ++){ console.log(getStyle(elements[i]).backgroundColor); } Надеюсь что правильно понял ваш вопрос и смог хоть чем то помочь. |
ну с return'ом селениум не очень дружить хочет, как организовать саму проверку цвета, знаю, нужно только достать все элементы формы, и такой вопрос: console.log это просто запись в лог же? я так понял? на проверку цвета не влияет?)
|
Забыл, огромное человеческое спасибо, за ответ) Хоть чуть чуть для селениума не подходит, но хотя бы есть хороший материал чтобы попробовать пошаманить с ним)
|
getStile(elements[i]); // можно заменить на window.getComputedStyle(elements[i], null); console.log - это просто обычный вывод данных, в моем случае это консоль firebug-а. =) В данном примере я просто показал как можно достать форму и ее элементы использум свойства DOM level 0. |
Часовой пояс GMT +3, время: 14:12. |