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有时会发生变化。
答案 0 :(得分:1)
你想要做的是提交表格,对吧?
您指出的<a>
只是提交该表单。由于这是通过JavaScript注入的,因此当您尝试单击它时,它可能不会显示。我推荐的是:
driver.find_element_by_css_selector("form[id^='QLf']").submit()
这将避免按钮,并提交相应的表格。
在上面的CSS选择器中,我也使用[id^=
这意味着,找到一个<form>
,其ID属性以 QLf开头,因为它看起来像是后面的数字,是自动生成的。