質問: あるサイトで下記の様にonclickでページ移動するボタンがあります。 そのボタンをseleniumでクリックし、ページを移動したいのですがなかなか上手くいきません。 ``` ``` 参考にさせて頂いたサイトでは、execute_scriptなるもので実行できるとのことでしたができず、こちらに質問させていただきました。 下記がコードです。 ``` browser.execute_script("A_re(this.form,23)") ``` 実際のコードではbuttonが100近く有り、最終的にすべてのbuttonをクリックし、クリック先の要素をすべて取得する必要があります。 (1)最初のbuttonをクリック ↓ (2)ページ移動先で要素を取得 ↓ (3)前のページに戻る ↓ (4)次のbuttonをクリック ↓ (5)ページ移動先で要素を取得 詳しい方がいらっしゃいましたらアドバイスをいただけないでしょうか?よろしくお願いします。
回答: こんにちは。 外部サイトだということなので、書き換えはできないのですね。 その場合、自動で処理を一気に実行することになるので、外部サイトに悪影響を与えないように、という点はお気をつけください。 さて、idで特定できないとか、同等の要素数が固定ではないとかあるのでしたら、XPATHやCSSで特定になるかと思います。 find_element_by_css_selector("#ff > input[type='button']") という感じで、CSSの擬似セレクタで form直下のinput type="button" の要素を取得できると思います。(指定は正しいかどうかわかりません) ここでは配列になるので、for文でループで回して、順番のinput type="button" に対して click() を呼ぶので如何でしょう。 この点は、mkgreiさんが書いてくださっているのと同じです。