2013-08-30 7 views
0

Служба резюме, которую я использую, требует, чтобы для каждой перечисленной деятельности в резюме было поле полей и часов в часах в неделю. Однако общее поле часов не обновляется автоматически независимо от того, сколько недель прошло. Моя цель - написать сценарий, который делает это.автоматизация веб-представления: имитировать событие onclick на элементе заголовка для загрузки формы

Идея сценария: Вход на сайт -> перейти на определенную страницу -> отправить форму ** на этой странице, обновляя общее количество часов

** к сожалению, для формы, чтобы открыть , вам нужно сначала щелкнуть элемент заголовка «edit», который заставляет его отображаться. Я просмотрел html веб-страницы, но не могу найти теги формы или ввода, соответствующие форме, которую я хочу отправить, только то, что форма генерируется с помощью того, что, по моему мнению, является вызовом функции javascript из поля onclick элемента. Я считаю, соответствующий фрагмент кода HTML является:

<a title="edit" class="edit" href="#entry-type" onclick="editComponent('10227041','education');">Edit</a> 

но только в том случае, если есть гораздо больший фрагмент кода позже в этом посте (проверить ссылку 2nd Pastebin на дне)

ВОПРОС: Есть ли конкретный язык/библиотека/способ (желательно на python, хотя я могу работать с Java) для имитации события onclick, и это приведет к загрузке формы?

Я немного поработал над этой проблемой, начиная с библиотеки механизации python. Я написал две функции,

def login(br,url):... 
def navigate(br,baseurl,url):... 

, которые удовлетворили бы первые две части плана моего сценария, но третий, где начинаются проблемы. Когда я печатаю все формы на странице с помощью

for form in br.forms(): 
    print form 

я http://pastebin.com/Gxy2tc1A

HTML веб-сайта можно найти на http://pastebin.com/PySri5cb

Позже я пытался работать с селеном (плагином Firefox IDE) и затем экспортировать код в python, где я бы отредактировал его, чтобы удовлетворить мои конкретные потребности, но это было не-go из-за некоторых неудобных ошибок.

+0

Селен будет стандартным выбором. В чем проблема? – smk

+0

@smk Если бы я хотел поделиться программой с моими друзьями (скажем, 30 человек), которые используют один и тот же сервис-резюме, не нужно ли им загружать все дополнения Selenium (сервер и т. Д.)? Я пытаюсь сделать загрузку скрипта дружественным, и поэтому он работает в фоновом режиме, обновляя общее количество часов в неделю. –

ответ

1

Вы заглянули в GreaseMonkey? Вы должны иметь возможность использовать это для извлечения часов в неделю, выполнять математику и заполнять общее количество часов. Вероятно, вы могли бы все это сделать. Все, что можно сделать на странице в JavaScript, можно сделать в GreaseMonkey.

EDIT: Код для этого сайта ужасен. Мне особенно нравится встроенный вызов loadResume(), который создается перед элементом, который он пишет (# build-wrap).

+0

Проблема заключается не только в извлечении данных, но и при использовании математики (включая обработку времени); Я уже реализовал их в python. Проблема трудно описать в устной форме - я отредактировал два скриншота, чтобы более точно описать проблему. http://i.imgur.com/E0OBl5l.png –