1

我在 python 2.7.3 上使用 mechanize。我正在寻求有关点击NIH 基因网站上的提交按钮的帮助。

按钮是由 div 包围的实际按钮元素,不在任何表单字段内。

<button id="search" type="submit" class="button_search nowrap" cmd="go">Search</button>

到目前为止,在示例和我在网上看到的内容中,提交按钮通常具有机械化可以选择的名称或标签,或者在表单中以便我可以执行 br.submit()。

我将如何点击提交?

谢谢

4

1 回答 1

2

该按钮不直接提交for,而是触发一个JavascriptEvent,最终会加载搜索页面。这解释了为什么按钮在您的浏览器中工作,即使它不在表单内。

mechanize无法运行 JS 代码,因此您将无法直接使用mechanize.

您是否有理由不能只打开目标 URL?即使在高级搜索表单上,这些看起来也很简单,例如:

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以获取指针。

于 2013-04-23T19:55:59.193 回答