0
我正在使用CasperJS進行爬網,但我需要先點擊一下才能完成頁面的搜索過程。但我無法通過其值或其內容選擇特定選項。如何使用CasperJS在iframe中選擇特定值或內容的選項?
1.一旦點擊父框架按鈕「全部」:
<div id="b_div" class="ym-body">
<iframe>
#document
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>
</head>
<body>
<form method="post" action="SearchList.aspx?ddl_id=sort_id&key=lar%7esort_id&EncodingName=" id="form1">
<table>
<tbody>
<tr>
<td>
<select size="2" name="listb_sor" id="listb_sor" onchange="javascript:OptionClick(this,'sort_id');" style="height:300px;width:220px;">
<option value="">All</option>
<option value="001">OptionA</option>
<option value="00001">OptionB</option>
</select>
.......
</iframe>
3.我要選擇OptionA:
<select name="sort_id" id="sort_id" class="p9"; display: block;" onclick="javascript: window.setTimeout('Hide_Select("sort_id",false)',3); showDialog('LIST','SearchList.aspx?ddl_id=sort_id&key=lar~sort_id&EncodingName=',460,360,true);return false;">
<option value="">All</option>
</select>
2.與跳轉到子框架頁。如果成功,子框架將自動關閉。但我無法成功選擇OptionA。
目前我的代碼是:
casper.then(function(){
this.click('#sort_id.p9');
this.page.switchToChildFrame(0);
this.evaluate(function() {
var sel = document.querySelectorAll('#listb_sor option');
sel.val('001').onchange();
});
});
但是當我拍攝的頁面,似乎代碼不能選擇OptionA成功地。
THX!你能告訴我如何獲得iframe的索引嗎?該框架沒有ID。 – Jeffy
這是頁面的第n個元素,即iframe。所以第一個iframe是索引0,第二個索引1等等。如果在網站上動態加載iframe可能會造成問題。 ;) – dasmelch