2014-10-14 1 views
0

Я делаю приложение GUI на Python, используя PyQt4 и spynner. У меня есть функция:Pyqt4, QtCore4.dll appcrash

def find_me(self, url, name=None, code=None): 
    b = spynner.Browser() 
    if name != None and code != None: 
     b.create_webview() 
     b.load(url) 
     b.wk_fill('input[name="ctl00$cphBody$tbOrgName"]', name) 
     b.wk_fill('input[name="ctl00$cphBody$OrganizationCode1$CodeTextBox"]', code) 
     b.click('#ctl00_cphBody_btnSearch') 
     b._wait_load() 
     source = b.html 
     b.destroy_webview() 
     b.close() 
    else: 
     b.create_webview() 
     b.load(url) 
     source = b.html 
     b.destroy_webview() 
     b.close() 
    return source 

Эта функция делает некоторые ходы на сайте и возвращает мне код html страницы. я главная функция с именем "Загрузчик":

def downloader(self): 
    downloads_list = [] 
    uniq = [] 
    j = 0 
    for name, code, checkstate in self.input_data: 
     try: 
      if checkstate == 0: 
       source = self.find_me("http://bankrot.fedresurs.ru/DebtorsSearch.aspx",  name, code) 
       root = XpathSelector(fromstring(source)) 
      else: 
       new_name = name.split(" ") 
       source = self.find_me2("http://bankrot.fedresurs.ru/DebtorsSearch.aspx", new_name[0], new_name[1], new_name[2], code) 
       root = XpathSelector(fromstring(source)) 
    ...... 
    self.progress_bar.setValue(((j+1)*100)/len(self.input_data)) #setting value to progress bar 
    j += 1 

И у меня есть третья функция, призывающую "Загрузчик":

def print_keys(self): 
    ................. 
    self.downloader() 

Эта функция подключена к кнопке:

self.start_button.clicked.connect(self.print_keys) 

После этого строка в "загрузчик":

self.progress_bar.setValue(((j+1)*100)/len(self.input_data)) 

У меня есть «Python.exe» appcrash. Причина: QtCore4.dll.

Что я делаю неправильно? Помогите мне пожалуйста.

+1

«Вопросы, ищущие отладку помощь (» почему не этот код работает? «) Должны включать короткий код, необходимый для воспроизведения его в самом вопросе». Можете ли вы представить минималистический рабочий пример, демонстрирующий проблему, а не небольшие части более крупной программы. Крушение может быть связано с любым количеством вещей, которое невозможно будет диагностировать без какого-либо контекста. –

+0

Моя программа рушится из-за "spynner". Без spynner у меня нет проблем. Но мне нужно, чтобы spynner автоматизировал некоторые ходы. –

+1

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

ответ

0

Soved моей проблемы, заменив spynner на Selenium + PhantomJS

Смежные вопросы