我在python 2.7.3上使用mechanize。我正在寻找有关点击NIH's gene website上的提交按钮的帮助。
按钮是一个实际的按钮元素,由div包围,不在任何表单字段中。
<button id="search" type="submit" class="button_search nowrap" cmd="go">Search</button>
到目前为止,在示例和我在网上看到的内容,提交按钮通常都有一个机械可以选择的名称或标签,或者是一种形式,所以我可以做br.submit()。
我如何点击这个提交?
由于
答案 0 :(得分:2)
该按钮不直接提交for,而是触发JavascriptEvent,最终会加载搜索页面。这解释了为什么按钮在您的浏览器中工作,即使它不在表单内。
mechanize
无法运行JS代码,因此您无法使用mechanize
直接“点击”该按钮。
您是否有理由不能只打开目标网址?即使在高级搜索表单上,这些看起来也非常简单,例如:
term = '("31"[Chromosome]) AND "000"[Disease/Phenotype]'
q = urllib.urlencode({'term': term})
response = mechanize.urlopen('http://www.ncbi.nlm.nih.gov/gene?%s' % q)
如果这对您不起作用,您将不得不依赖于支持JavaScript的解决方案,请参阅https://stackoverflow.com/questions/606550/watir-vs-selenium-vs-sahi以获取指示。