2016-05-24 5 views
1

私はwatir-webdriver gemを使用していますが、最近firefoxでいくつかの要素をクリックしようとすると停止しました。ビューポートの中央に要素をスクロールしようとしました

ビューポートから外れている要素をクリックしようとすると、ページがスクロールして要素をページの上部に配置します。基本的にちょうどどのされています。私は順番に要素があることになり、ページの上部に実行されているオーバーレイのバナーを、持っているよう

require 'watir-scroll' 
element = @browser.div({:id=>'potatoes'}) 
element.wait_until_present 
@browser.scroll.to(element) 
element.click 

OR

$("div[id='potatoes']").scrollIntoView(); 

しかし、これは「私にいくつかの問題を引き起こしていますそれの背後にある。要素にスクロールする簡単な方法はありますが、ビューポートの上部に配置する代わりに、中央に配置してください。

はまた私が使用している:

$("div[id='potatoes']").scrollIntoView(false); 

要素までスクロールし、ページの一番下にそれを置くために、しかし、中心に持っていいだろう、私はでバナーを持っていると思った場合にはページの下。

よろしく

+1

はhttp://stackoverflow.com/questions/36706986/watir-webdriver-throws-not-clickable-error-even-when-element-is-visible-prese/36708613#36708613見ます – Carldmitch

答えて

0

IE & FirefoxのelementScrollBehaviorを実装します。これは、ドライバのセッション全体のすべての要素に対して設定されます。 0はデフォルトで、ビューポートの上部に要素を配置し、1はビューポートの下部に要素をスクロールします。あなたは(ワチールはおそらく要素のオフセットにスクロールするより直接的な支援を検討すべきである)JavaScriptを使用する必要がありますより多くの制御のために

caps = Selenium::WebDriver::Remote::Capabilities.firefox('elementScrollBehavior' => 1) 
Watir::Browser.new :firefox, desired_capabilities: caps 

browser.execute_script('javascript:window.scrollBy(250,350)') 
関連する問題