84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
iframe 内に存在し、他の iframe 内に存在する可能性がある要素を選択しようとしています。
最初に iframe を選択せずに、(Python) Selenium の一部の (子) iframe 内の要素を選択することは可能ですか?何らかの方法で各 iframe を「ループ」して、要素がどこにあるかを確認する方法はありますか?
要素、HTML コンテンツ、および iframe がロードされたばかりの場合にこれを行うにはどうすればよいですか...?
独自の再帰ファインダーを作成するのは簡単です。申し訳ありませんが、私は Python については知りませんが、Java では次のようになります:
public void findInAllFrames(WebElement e, String targetIdStr) { List l = e.findElements(By.tagName("iframe")); for(int inx=0; inx ターゲット = l.get(inx).findElements(By.id(targetIdStr)); if(targets.size()>0) { // ターゲットに対して何かを行う } findInAllFrames(l.get(inx), targetIdStr); } }
No、Selenium を渡すことはできません。対応する iframe に切り替える必要はありません。
iframe
には、他の <iframes> および framesets が含まれています。したがって、iframe 内の WebElement を操作する必要がある場合は、次のいずれかの方法で、対応する <iframe> に切り替える必要があります。 ## フレーム切り替え方式:
および
に切り替える必要があります。
フレーム名別
Name
###例:### driver.switch_to.frame("iframe_name")
フレームID別
ID 属性。これを介してそれに切り替えることができます。 ###例:###
フレームごとのインデックス
###例:###
ホストに戻ります
default_content()
または
parent_frame() を使用してメイン フレームに戻すことができます
driver.switch_to.default_content() driver.switch_to.parent_frame() フレームを切り替えるより良い方法: フレームを切り替えるより良い方法は、expected_conditions
パス フレーム ID: WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.ID,"id_of_iframe")) 投稿者 フレーム名
FrameworkXpath
フレーム CSS
これに関する詳細な説明は、次の場所にあります。
iframe 下の #document を処理する方法
独自の再帰ファインダーを作成するのは簡単です。申し訳ありませんが、私は Python については知りませんが、Java では次のようになります:
No、Selenium を渡すことはできません。対応する
###理由:###iframe
に切り替える必要はありません。ページをロードするとき、Selenium のフォーカスはデフォルトで上部ウィンドウに残ります。
トップ ウィンドウには、他の <iframes>
および
framesets が含まれています。したがって、iframe 内の WebElement を操作する必要がある場合は、次のいずれかの方法で、対応する <iframe>に切り替える必要があります。
## フレーム切り替え方式:フレームは 3 つの方法で切り替えることができます。
フレーム名別
:Name
iframe に切り替えるための iframe の属性。###例:### driver.switch_to.frame("iframe_name")
フレームID別
: iframe のID 属性。これを介してそれに切り替えることができます。 ###例:###
driver.switch_to.frame("iframe_id")フレームごとのインデックス
:ホストに戻ります
:default_content()
parent_frame() を使用してメイン フレームに戻すことができます
###例:###driver.switch_to.default_content() driver.switch_to.parent_frame()
フレームを切り替えるより良い方法: フレームを切り替えるより良い方法は、
を frame_to_be_available_and_switch_to_it に設定してexpected_conditions
WebDriverWait# を引き起こすことです
## 期待されるフレームワークの可用性を取得するには、次のようにします:パス フレーム ID:
投稿者 フレーム名
iframe 下の #document を処理する方法