テストしているWebアプリケーションのホームページには、最初に読み込んだときに読み込み画面が表示され、ユーザー名/パスワードボックスが表示されます。これは動的に生成されたUI要素であり、カーソルはデフォルトでusernameフィールドの内側にあります。Webページが1つの動的ページに含まれ、Selenium(Python)とのドライバ対話を使用できません
私は周りを見回し、誰かがアクションチェーンを使って提案しました。アクションチェーンを使用すると、すぐにユーザー名とパスワードのフィールドにテキストを入力してEnterキーを押すと、次のページが正常に読み込まれます。残念ながら、アクションチェーンは、私の特別なセットアップのために私にとっては実行可能な長期的な答えではありません。
webdriverのfind_element_by_id
を使用すると、何とか見えないので、私はそれを見つけることができ、send_keys
を要素に使用することはできません。私は受け取る
selenium.common.exceptions.ElementNotVisibleException:メッセージ:要素が表示されません。
また、このエラーを表示せずにフィールドをクリックしたり、他の方法で操作したりすることはできません。
私はまた、 "xpaths"やcssのような他の手段を使って要素を特定したり相互作用したりしてみましたが、役に立たなかった。それらは常にnot visible
です。
不思議なことに、それは動的ページタイトルで動作します。ページが最初にロードされるときにはLoading...
であり、終了するとLogin
になります。 driver.title
が呼び出されると、ドライバは現在のタイトルを返します。
誰かに提案がありますか?実際
あなたが要素を見つけようとしているときに、ログインページに進行状況バーが表示されていることを確認しますか? –
はい、あります。私はログインボックスが表示されるのに十分な時間である、それと対話しようとする前にtime.sleep(20)を入れました。 – JRodge01
実際には、DOM上に存在する要素をチェックしているかどうか、または存在していないかどうかは、presence_of_element_locatedが存在しているかどうかだけを見ることができる一方で、visible_of_element_locatedが存在し、 –