硒按钮形式

时间:2014-08-01 14:12:18

标签: python selenium

Python:3.4.1 浏览器:Chrome

我尝试使用Selenium和Python推送位于表单中的按钮。我对Selenium和HTML很新。

HTML代码如下:

<FORM id='QLf_437222' method='POST' action='xxxx'>
    <script>document.write("<a href='javascript:void(0);' onclick='document.getElementById(\"QLf_437222\").submit();' title='xxx'>51530119</a>");</script>
    <noscript><INPUT type='SUBMIT' value='51530119' title='xxx' name='xxxx'></noscript>                             
    <INPUT type=hidden name="prodType" value="DDA"/>
    <INPUT type=hidden name="BlitzToken" value="BlitzToken"/>
    <INPUT type=hidden name="productInfo" value="40050951530119"/>
    <INPUT type=hidden name="reDirectionURL" value="xxx"/>          
</FORM>

我一直在尝试以下方法:

driver.execute("javascript:void(0)")
driver.find_element_by_xpath('//*[@id="QLf_437104"]/a').click()
driver.find_element_by_xpath('//*[@id="QLf_437104"]/a').submit()
driver.find_element_by_css_selector("#QLf_437104 > a").click()
driver.find_element_by_css_selector("#QLf_437104 > a").submit()

Python不会抛出异常,因此我似乎点击了某些内容,但它并没有做我想做的事。

除此之外,当从Selenium初始化chrome驱动程序时,网页会很有趣。单击初始化的chrome驱动程序中的按钮时,网页将引发错误(888)。

我不知道从哪里开始。可能是隐藏元素的东西吗?

如果我能提供更多信息,请告诉我。

编辑:

表单ID有时会发生变化。

1 个答案:

答案 0 :(得分:1)

你想要做的是提交表格,对吧?

您指出的<a>只是提交该表单。由于这是通过JavaScript注入的,因此当您尝试单击它时,它可能不会显示。我推荐的是:

driver.find_element_by_css_selector("form[id^='QLf']").submit()

这将避免按钮,并提交相应的表格。

在上面的CSS选择器中,我也使用[id^=这意味着,找到一个<form>,其ID属性 QLf开头,因为它看起来像是后面的数字,是自动生成的。