我正在尝试使用 Mechanize 在 ASPX 中跟踪带有 href 作为 Javascript 的链接。
我在机械化中使用节点跟踪链接,但无法发送点击事件。
slink=page.link_with(:node => page.at('a[@id="lbtnRole_2"]'))
page=slick.click
收到以下错误:
page=slick.click -- in `<top (required)>'#<NameError: undefined local variable or method `slick' for main:Object>
当我尝试像在 javascript 中那样模拟表单提交时,我没有收到任何错误。但也无法导航到第二页。
page = agent.get('http://somepage.aspx')
search_results = page.form_with(:name => 'MainForm') do |form|
form.field_with(:name => "__EVENTTARGET").value=''
form.field_with(:name => "__EVENTARGUMENT").value='role'
end.submit
下面的网页链接和Javascript
关联:
<a id="role" onclick="javascript:__doPostBack('projectrole','a000~AA~XYZ~Y~2~~others')" class="style_ProjectCentral_ProjectRole" href="javascript:__doPostBack('role','')" style="color:DarkBlue;font-family:Arial;">TM</a></td><td></td>
Javascript - 执行以下操作:
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.MainForm;
}
else {
theform = document.forms["MainForm"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
当前页面的机械化对象:
#<Mechanize::Page::Link "TM" "javascript:__doPostBack('role','')">}
你能告诉我导航到下一页的方法吗?