[英]going to a javascript link with mechanize-firefox
頁面上有一個鏈接,我想轉到它,但這只是一個javascript命令。 如何機械化鏈接?
<a href="javascript:__doPostBack(ctl54$cphMainContent$resultsGrid$ctl54$ctl25$ctl62$ctl13,88)"><span>abc</span></a>
沒有頁面及其HTML和JS,只能猜測。 請注意, follow_link()
方法不適用於JS鏈接。 下面的方法可以,但是沒有頁面我當然不能測試。
最好的選擇是將鏈接作為DOM對象獲得click
方法
use WWW::Mechanize::Firefox;
# Get to your page with the link(s)
my $link = find_link_dom( text_regex => 'abc' ); # Or use find_all_links_dom()
$link->click();
# $mech->click( { dom => $link } ) # works as well
還有text
和text_contains
相關選項(而不是text_regex
),以及許多其他選項。 請注意, click
方法將在事件列表上等待返回。 例如,參見最近的這篇文章 。 這對於需要較長時間才能完成的頁面至關重要。
請參閱docs中的find_link_dom()
並click
方法。 它們不是很詳細或示例很多,但確實提供了足夠的知識來解決它。
如果您需要審問鏈接,請使用find_all_links_dom()
,它以MozRepl::RemoteObject
實例的形式MozRepl::RemoteObject
Firefox DOM的數組或對該數組的引用(取決於上下文)。
my @links_dom = find_all_links_dom( text_contains => 'abc' );
# Example from docs for find_link_dom()
for my $ln (@links_dom) {
print $ln->{innerHTML} . "\n"
}
請參閱MozRepl :: RemoteObject的頁面,以了解您可以使用它做什么。 如果只需要找出要單擊的鏈接,那么find_link_dom()
的選項就足夠了。
僅對使用__doPostBack
鏈接且鏈接中包含<span>
的玩具頁面進行了測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.