1

Я пытаюсь удалить более 2000 пользователей спама из wikisite, поэтому я использовал механизацию и слияние пользователей и удаление (расширение mediawiki). проблема Я сталкиваюсь, что для удаления, механизировать должна отметьте флажок, который не похож на работу:mechanize checkbox control not working python

fi = open('users') 

for user in fi.readlines(): 

    response3 = br.open('url') 

    br.form = list(br.forms())[0] 
    br['olduser'] = user 
    br['newuser'] = 'Spambot' 
    br.form.find_control(name='deleteuser').items[0].selected = True 

    response4 = br.submit() 

     print response4.read(), '\njust deleted ', user 

fi.close() 

Я посмотрел на многих постах здесь, на StackOverflow, а также на других сайтах, и все говорят то же самое

br.form.find_control(name='deleteuser').items[0].selected = True 

должен это сделать. что я делаю неправильно?

+0

Можете ли вы указать URL или html страницы? – ton1c

+0

Какое поведение вы видите? Вы пытались использовать RobustFactory? –

+0

html не имеет отношения к делу, является ссылкой на форму расширения mediawiki (specialpage: usermergeanddelete). –

ответ

1

Это действительно не решение, но должно помочь вам отладить и посмотреть, что вы делаете что-то неправильно. Следующее просто печатает все элементы управления формы, которую вы пытаетесь заполнить, используя Mechanize.

for control in form[0].controls: 
    print control 

И если вы выбрали этот флажок правильно он должен выглядеть следующим образом:

<CheckboxControl(deleteorwhatever=[*on])> 

Я надеюсь, что это помогает поставить вас в правильном направлении.

0

Late, но это работает для меня ...

br.find_control("comment_status").items[0].selected = false 

я не указал (имя = «comment_status»), но только имя его в одиночку кавычки.