我正在使用Perl和WWW :: HtmlUnit库来访问以下站点: https://www.cnatra.navy.mil/scheds/schedule_data.aspx?sq=VT-7
我可以加载页面,点击“查看时间表”和“搜索”按钮,但我无法点击ctrl日历中的其中一个编号日。
我一直在查看click()函数,但是我必须在调用此函数之前定义我想要单击的链接。
我有什么想法可以让程序找到并点击这些链接?
以下是网站上的代码,用于描述我要点击的链接:
<td align="center" style="width:14%;">
<a href="javascript:__doPostBack('ctrlCalendar','4241')"
style="color:Black" title="August 12">12</a>
</td>
这是我将把它放入的简化代码:
use WWW::HtmlUnit;
use Inline::Java;
my $webClient = WWW::HtmlUnit->new;
$webClient->setUseInsecureSSL(1);
my $page = $webClient->getPage("https://www.cnatra.navy.mil/scheds
/schedule_data.aspx?sq=vt-7");
###define $daylink element here. This is the calendar link I want to click
my $sched = $daylink->click();
my $content = $sched->asXml;
print "\n$content\n\n";
答案 0 :(得分:1)
由于表和TR / TD以及链接都没有ID /名称,因此您需要通过属性搜索找到相应的元素。幸运的是,HTMLUnit仅为此提供了一个API:getOneHtmlElementByAttribute
。
尝试这样的事情(没有测试,因为我没有访问权限)
my $ancestor = $page->getBody();
my $daylink = $ancestor->getOneHtmlElementByAttribute('a', 'title', 'August 12');