NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Другая опция является использованием AutoIT + Firefox + mozrepl + И следующие au3 . Это мощно, поскольку AutoIT работает вне браузера (это - фантастическое средство автоматизации сам по себе), таким образом, можно работать посредством представления нескольких форм браузера, не теряя контекст. Тогда И следующие au3 сценарий позволяет Вам просто управлять Firefox через AutoIT3.
мы используем iMacros инструмент, который Вы упомянули с хорошим успехом:
Firefox + Примечание iMacros
, что это также стало свободным дополнение IE ! Большая вещь об этом состоит в том, что точно те же макросы работают в обоих браузерах. По моему скромному мнению, очень полезный для быстрого и легкого веб-тестирования и общей веб-автоматизации.
Tim
При использовании libwww-perl то не останавливайтесь там. Используйте WWW:: Механизируйте, который является оберткой вокруг LWP, который делает взаимодействие браузера, которое Вы хотите. Оборотная сторона: Это (еще) не обрабатывает JavaScript.
Несколько предложений:
Редактирование: я предполагаю, что они действовали бы на веб-страницы, содержащие данные, которые Вы хотите отправить формам.
Мне действительно нравится вода платформа (работающий на рубине) - программируемый, легкий, IE использования автоматизировать сеть (и таким образом, Вы получаете истинное поведение браузера). Конечно, это - Windows только - Вы не определили, является ли это тем, что Вы используете.
Мы использовали воду для автоматизации наших тестов веб-приложения, и мы очень удовлетворены.
Я - на самом деле большой поклонник Chickenfoot, который я начал использовать много недавно для обеспечения поддержки сценариев Zotero, другого расширения Firefox.
@Asaf Bartov, на самом деле, Watir не является Windows только. Существуют также FireWatir, который работает над Windows, Linux и Mac и SafariWatir, который работает над Mac
http://wtr.rubyforge.org/ http://wiki.openqa.org/display/WTR/FireWatir http://safariwatir.rubyforge.org/
Use:
Firefox + iMacros to fetch:
Go to the page you like (e.g yahoo.com), bring iMacro in focus, hit record and search for
some text. When first page shows, Save the page in a file.
Now you have a page you wanted.
You are done fetching at this point.
Save the macro and give it a name.
Next time you can just run the macro you just saved.
You then clean up the html code you got by using this:
# this is php, do the proper thing in the language of your choice
# one or more spaces is equal to one space, remove tab, return ...etc.
return ereg_replace(' +', ' ', trim(preg_replace("/(\r\n|\r|\t|\n|\'|\")/s", '', $string)
Now you have a clean html page with one line, a long one.
Now you can cut and slice as you wish by using a regEx.
Things to know:
You can start the macro in firefox via a cronjob (commandline) if you need full automation.
у меня впечатление от IMacros, вам нужно заплатить , чтобы разблокировать много вкусностей, поэтому я выбрал Chickenfoot. К сожалению, список рассылки Chickenfoot в последнее время очень тих, поэтому я не уверен в его будущем ...
Я использую iMacro/.net для проекта извлечения данных. Мне нравится простота написания скриптов для iMacros, что важно, так как в приложении может быть до 60+ сайтов для извлечения данных. Для этого проекта накладные расходы на запуск iMacros стоят сэкономленного времени разработки. Это не идеальное решение, но это один из способов взаимодействовать с данными другого сайта, предполагая, что они не предоставляют надлежащего интерфейса. Самое интересное то, что я создал небольшой серверный кластер из скреперов iMacros, чтобы помочь распределить нагрузку. Прямо сейчас пользователи могут получить доступ к серверам приложений через сайт для adhoc-запросов, но в конце концов я бы хотел, чтобы он эволюционировал во что-то более потоковое.
Я большой поклонник Selenium
предназначенного для автоматизированного тестирования браузера, но с поддержкой скриптов (несколько языков) вы можете создавать шаблоны макросов, которые будут заполнять формы и т.п. на основе переменных
также: кто-нибудь знает хороший макрос, работающий с Flash? Похоже, что javascript не может перейти эту грань