我正在努力解决这个问题。我有一个经过全面测试的python脚本。我必须做一个小改动,其中我必须先点击一个单选按钮,然后自动执行一个javascript函数将页面转发到搜索表单。
我的工作平台:Linux
语言:Python
单选按钮代码:
<input type="radio" language="javascript" onclick="javascript:setTimeout('__doPostBack(\'_ctl0$Main$SearchRadio\',\'\')', 0)" value="SearchRadio" name="_ctl0:Main:SearchRadio" id="_ctl0_Main_SearchRadio">
页面上的Javascript代码:
<script type="text/javascript">
<!--
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
这就是硒的作用。不确定它是否有帮助。
def test_untitled(self):
sel = self.selenium
sel.open("/Search/results.aspx")
sel.click("_ctl0_Main_SearchRadio")
sel.wait_for_page_to_load("30000")
sel.type("-InputTextField", "ThinkCode")
sel.click("_SearchMainUser")
sel.wait_for_page_to_load("30000")
try: self.failUnless(sel.is_text_present("ThinkCode"))
except AssertionError, e: self.verificationErrors.append(str(e))
我要做的就是转到我们单击单选按钮后重定向到的结果页面。我在使用urllib2阅读python web-scraping中的javascript恐怖。希望一个善良的pythonista很快帮助我:)。
答案 0 :(得分:0)
不要试图自动点击Python中的JavaScript按钮,而是尝试监控发送的请求,然后复制它。有各种firefox扩展程序可以帮助您执行此操作,例如TamperData,Firebug和LiveHttp。