首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Perl WWW::HtmlUnit模拟点击"a“链接

如何用Perl WWW::HtmlUnit模拟点击"a“链接
EN

Stack Overflow用户
提问于 2011-08-31 04:30:47
回答 1查看 334关注 0票数 2

我正在使用Perl和WWW::HtmlUnit库来访问以下站点:https://www.cnatra.navy.mil/scheds/schedule_data.aspx?sq=VT-7

我可以加载页面,点击“查看日程表”和“搜索”按钮,但我不能点击ctrl日历中的某一天。

我一直在研究click()函数,但是在调用这个函数之前,我必须将我想要单击的链接定义为一个元素。

你知道怎样才能让程序找到并点击这些链接吗?

这是来自网站的代码,描述了我想要点击的链接:

代码语言:javascript
复制
<td align="center" style="width:14%;">
    <a href="javascript:__doPostBack('ctrlCalendar','4241')"
       style="color:Black" title="August 12">12</a>
</td>

下面是我将放入其中的简化代码:

代码语言:javascript
复制
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";
EN

回答 1

Stack Overflow用户

发布于 2011-08-31 05:02:37

由于表、TR/TD和链接都没有ID/名称,因此您需要通过属性搜索找到合适的元素。幸运的是,HTMLUnit提供了一个应用程序接口:getOneHtmlElementByAttribute

尝试像这样的东西(没有测试,因为我没有访问权限)

代码语言:javascript
复制
my $ancestor = $page->getBody();
my $daylink = $ancestor->getOneHtmlElementByAttribute('a', 'title', 'August 12');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7249420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档