2016-10-18 2 views
1

私はWebアプリケーションを自動化するためにPythonベースとFirefoxブラウザを使用してRobotframework selenium2Libraryを使用しています。Robotframework Selenium2ライブラリのヘッダオーバーレイがページスクロール時にクリックされる要素に適用されます

ページスクロール中にヘッダーが動かない(つまり、ページスクロールがいつでもユーザービューでヘッダーが使用可能になると、コンテンツのみがスクロールされます)今すぐClickイベントが発生すると問題が発生します。問題は、クリックしようとしている要素がページビューで使用できない場合、イベントをクリックするとページをスクロールして、ヘッダー(オーバーラップ)のすぐ下にある要素をWebページの上に移動し、以下の例外があります。

WebDriverException:メッセージ:要素がポイント(1362.63330078125、15.5)でクリックできません。他の要素はクリックを受け取ります:https://url/url/chat/chat.asp','popup','height=600、width = 680、scrollbars = no、resizable = yes、directories = no、menubar = no 、ステータス=いいえ、ツールバー=いいえ ')) ";

私はページが表示されるまで待ってみましたが、それでも次のステートメントのように、Clickイベントをクリックしてください。 )がヘッダーまで再びスクロールしています。

ヘッダーは常に表示されていますが、このスクリプトは失敗しています。この問題を解決して実行するには、正常に完了しましたか?

+0

「スリープ30s」を自分のページに追加するためのデバッグの場合は、クリック自体を実行する前にどうしたらいいですか?また、テストが失敗したときにページ上に何が表示されているかを見ることができれば、 'キャプチャページのスクリーンショット'も役立ちます。 –

+0

Clickの前にスリープを追加しようとしましたが、Clickイベントが実行されている間の次のステップとして、ページが上部(ヘッダーバーのすぐ下)にスクロールされています。キャプチャページのスクリーンショットは、クリックされる要素がヘッダによって隠されていることを示しています。 –

+0

問題が見つかりました!ヘッダーがクリックを望む要素を隠している場合は、他の要素が問題のようにクリックを巧妙に受け取ります。あなたは最初にカバー問題を解決する必要があります... –

答えて

1

私が正しく理解している場合、要素ページのスクロールをクリックするとそれが見えるように十分に小さくなっています。透明なヘッダーがあるため、要素はその下に残り、クリックできません。私の解決策は、要素が見えるようになるまでスクロールして、さらにスクロールダウンする新しいキーワードを作ることです。

*** Settings *** 
Library  Selenium2Library 

*** Keywords *** 
Scroll And Click 
    [Arguments]   ${element} 
    Execute Javascript window.document.evaluate("//*[@id='${element}']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView(true); 
    Execute Javascript window.scrollBy(0, -200) 
    Click Element   ${element} 

*** Test Cases *** 
Scrolltest 
    Open Browser  http://www.stackoverflow.com/ gc 
    Scroll And Click hireme 
関連する問題