如何使用 mechanize (python) 在 global_form ListControl

我正在与一家食品银行合作,以便帮助他们在有人填写入会表格时自动为新客人创建一个条目。为了创建新来宾,必须首先选择外展活动。这是通过作为全局窗体一部分的 ListControl 完成的。


import mechanize

import http.cookiejar


br = mechanize.Browser()

cj = http.cookiejar.LWPCookieJar()

br.set_cookiejar(cj)

br.set_handle_equiv(True)

br.set_handle_gzip(True)

br.set_handle_redirect(True)

br.set_handle_referer(True)

br.set_handle_robots(False)

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

br.addheaders = [('User-agent', 'Chrome')]



# login


br.open('https://companywebsite.com/login')

br.select_form(nr = 0)

br.form['username'] = 'my_username'

br.form['password'] = 'my_password'

br.submit()



# Deselect the default placeholder value and select the name of the outreach


br.open('https://companywebsite.com/create-new-visit')

br.global_form().find_control(id='outreachSelect').items[0].selected = False

br.global_form().find_control(id='outreachSelect').items[1].selected = True

print(br.global_form().find_control(id='outreachSelect').items)

这是我得到的输出。如您所见,第一项仍处于选中状态。


[<Item name='0' id=None value='0' selected='selected' contents='Select an Outreach' label='Select an Outreach'>, 

<Item name='558' id=None value='558' contents='Company Name' label='Company Name'>]

此屏幕截图显示了网站的外观

https://img1.sycdn.imooc.com/652ca45e0001887209960318.jpg

为了使“创建新访客”按钮起作用,必须更改“选择外展”下拉列表



米脂
浏览 77回答 1
1回答

万千封印

再次查看后,我发现该网站正在根据该下拉列表的内容运行 javascript。当选择正确的选项时,它将向 发出请求https://companywebsite.com/create-new-visit/set-outreach/?id=config_1。我能够通过使用 mechanize 提出相同的请求,然后使用“创建新来宾”按钮来解决我的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5