Twill-同じ名前の複数の選択を選択するにはどうすればよいですか
-
04-10-2019 - |
質問
TwillとPythonを使用してWeb Crawlerを書きます。 showforms()returns
Form name=customRatesForm (#1)
## ## __Name__________________ __Type___ __ID________ __Value__________________
10 originState hidden originState TN
11 destState hidden destState IL
12 originZip text originZip 37130
13 destZip text destZip 60602
16 classes select classes1 ['0000'] of ['0000', '0500', '0550', ...
17 weight text weight1 600
18 weight text weight2
19 weight text weight3
20 weight text weight4
30 1 submit submi ... submit
読みやすくするために、ほとんどの行を取り出しました。私の問題は、実際に12個の選択があり、それらのすべてが「クラス」という名前があることです。これらはリストとしてCGIを通過します。しかし、Twillはそれらを区別できないようです。また、私が走るとき
fv('1', 'classes', '0500')
次のエラーが発生します。
_mechanize_dist.ClientForm.AmbiguityError: id=None name='0500' label=None
IDで選択の名前を変更し、送信関数を書き換えてjQueryセレクターを使用して「name」属性を「クラス」に再割り当てするなど、いくつかの回避策を試しました。
$('.myclasses').attr('name', 'classes');
これをブラウザで見ると、予想どおりに再割り当てするようです。ただし、Twillのヘッダーは、「Classes1」、「Classes2」などの名前を提出していることを示しています。
どんな助けも大歓迎です。私は私が知っている回避策から出ていません。これは私のページではないので、「クラス」の選択のリストに対するコントローラーの期待に縛られています。
解決
私が今まで見つけた限り、Twillでこれを行う方法はありません。すべてのソリューションは、Twillの外側の回避策になります。
所属していません StackOverflow