この問題を解決するための位置決め要素のセレンの自動化に関しては、いくつかの方法

ストレートポイントに、さらに苦もなく、問題が発生した位置決め要素を実行し、クリック操作を見つけることができません。

1.位置決め要素は、一般的に次の3つの場合を持っていない、あなたは非難ハに遭遇することができる場合

探している。元素現在のウィンドウではありません

解決方法:driver.switch_to.window()ウィンドウを切り替えるには、通常、複数のウィンドウで、最後のスイッチにウィンドウを使用することができるようになります

まず第一に、現在のウィンドウを取得するために= all_win driver.window_handles

次いでdriver.switch_to.windowする最後のウィンドウに切り替える(all_win [-1])またはdriver.switch_to.window(driver.window_handles [-1])

注意:新しいウィンドウのほとんどが最後に開かれ、直接使用することは、[-1]インデックスに、driver.getWindowHandle(と現在のウィンドウハンドルを取得します)

B。現在の要素は、現在のページではないが、フレームまたはIフレームのフレームワークに

解決策:最初のチェックの元のページには、フレームまたはiframeタグも直接frame_namesを使用してエンコードすることができます= find_elements_by_tag_name(「IFRAME」)または(「フレーム」)元素の発見があるかどうか、およびframe_namesに変数リストを置くために

次いでdriver.switch_to.frame(frame_names [0])frame_namesの長さに応じて、フレーム内の最初のフレームに切り替えられ、このケーブルは、0からLENに開始(frame_names)-1フレーム、最後のフレームに直接切り替えると[-1]添字するrame_namesを使用

このとき、位置決め要素その後、driver.find_element_by_xxx方法がに見つけることができます。

注意:あなたがしiframe内に埋め込まれたマルチレイヤを使用することができます 1つのiframeに切り替えられ)(driver.switch_to.parent_frameも使用することができ、ホームページdriver.switch_to.default_contentに切り替えるには()

C。ページのロードが遅い、それが位置決め要素にロードされていません

解決方法:webdriverwaitディスプレイ等の睡眠は、要素を配置する前の待機時間を設定する待機中

 

おすすめ

転載: www.cnblogs.com/oscarforever/p/11573943.html