Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中填充表单和按下javascript按钮_Javascript_Python_Selenium_Mechanize_Jython - Fatal编程技术网

在python中填充表单和按下javascript按钮

在python中填充表单和按下javascript按钮,javascript,python,selenium,mechanize,jython,Javascript,Python,Selenium,Mechanize,Jython,我想在网站上自动填写表格,其中包含某些参数的信息,这些参数将根据我输入的参数返回产品。我曾尝试在python中使用mechanize,但它不支持javascript,而且似乎为了在填充参数的整个过程中导航,需要按下一些看起来像javascript对象的按钮。例如,引导选择按钮: <a onclick="_gaq.push([&#39;_trackEvent&#39;, &#39;Navigation Menu&#39;, &#39;Click

我想在网站上自动填写表格,其中包含某些参数的信息,这些参数将根据我输入的参数返回产品。我曾尝试在python中使用mechanize,但它不支持javascript,而且似乎为了在填充参数的整个过程中导航,需要按下一些看起来像javascript对象的按钮。例如,引导选择按钮:

    <a onclick="_gaq.push([&#39;_trackEvent&#39;, &#39;Navigation Menu&#39;, &#39;Click&#39;, &#39;Guided Selection Link&#39;]);" id="ctl00_NavigationMenu_ConfigureLink" href="javascript:__doPostBack(&#39;ctl00$NavigationMenu$ConfigureLink&#39;,&#39;&#39;)">Guided Selection</a></li>


我还尝试使用selenium,但我不想创建浏览器的新实例。有基于python的建议吗?也许是jython?非常感谢

我的建议是使用firebug之类的工具简单地捕获表单信息。然后通过Python“重放”请求(无论是GET还是POST)。下面是POST请求的一个片段

import urllib
import urllib2

url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
在fire bug中,您可以从console选项卡下获取
url


如果您正在执行自动表单发现,这可能不起作用。

您是否尝试使用了
self.driver.execute_脚本(&#doPostBack(';ctl00$NavigationMenu$ConfigureLink';,';&';)”)
?对不起,这是用于mechanize的吗?因为我用Selenium单击这些按钮没有任何实际问题。我可以查看页面源代码,然后单击“按id命名”或“使用驱动程序命名”。按id(“某些id”)查找元素。单击()很抱歉,这是一个Selenium python绑定,允许您只执行javascript。对不起,我不知道你在寻找一种非硒的解决方案。谢谢,但我决定只使用硒