0

我正在尝试使用 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','')">} 

你能告诉我导航到下一页的方法吗?

4

0 回答 0