Pythonセレン操作プルダウンスクロールバーメソッドの概要

Pythonセレン操作プルダウンスクロールバーメソッドの概要

UIオートメーションでは、要素を識別できず、見つからないという問題が頻繁に発生します。iframe内にない、xpathまたはidが間違っているなど、多くの理由があります。しかし、現在表示されているページ要素に表示されないものがあり、ドラッグドロップバーを動かすと要素が出てきます。

たとえば、次のWebページでは、ドロップダウンバーをドラッグして、セレンを通じてパスワード入力ボックスの要素を見つける必要があります。

Pythonでこの種の問題を解決するにはいくつかの方法があります。それを必要とする人への簡単な紹介:

方法1) jsスクリプトを使用した直接操作。方法は次のとおりです。

js = "var q = document.getElementById( 'id')。scrollTop = 10000" 
driver.execute_script(js)

 または:

js = "var q = document.documentElement.scrollTop = 10000" 
driver.execute_script(js)

 

ここのidはスクロールバーのidですが、jsにはxpathメソッドはありません。

方法2) jsスクリプトを使用して、指定した場所にドラッグします

target = driver.find_element_by_id( "id_keypair")
driver.execute_script( "arguments [0] .scrollIntoView();"、target)#可視要素にドラッグ

このメソッドは、スクロールバーを表示する必要のある要素の位置にドラッグできます。このメソッドは、より用途が広く、使用できます。

方法3)ページの表示に従って回避し、タブキーを送信する

この例のページでは、パスワードは入力ボックスです。通常の手動操作中に、タブキーを使用してパスワードボックスに切り替えることができるため、このアイデアによれば、タブキーを送信してpythonで切り替えて要素を表示することもできます

from selenium.webdriver.common.keys import Keys 
driver.find_element_by_id( "id_login_method_0")。send_keys(Keys.TAB)

 

更新

少し前にrobotframe作業フレームワークを使用する場合、selenium2libraryには非常に便利な関数Focusがあり、要素を自動的に見つけてソースコードを調べます。

    def focus(self、locator):
        "" "フォーカスを` locator`で識別される要素に設定します。 "" " 
        element = self._element_find(locator、True、True)
        self._current_browser()。execute_script(" arguments [0]。 focus(); "、要素)

ソースコードから、このメソッドがメソッド2)と一致していることを確認できます。Pythonで自分自身記述し、ツールがそれをカプセル化します。

元の記事を17件公開 Like1 Visits 819

おすすめ

転載: blog.csdn.net/weixin_45433031/article/details/105152745