2016-06-23 7 views
1

私はウェブページ上のフォームに記入しています。送信ボタンはフォームの下部にありますが、ポップアンダーに覆われています。ポップアンダーに覆われたボタンを正しくクリックするにはどうすればいいですか?

System.InvalidOperationException

をと言う:私はelement.click()をしようとすると、それは単にエラーをスローし、私は、何とか、スクロールダウンすることができ、それを見るために、いくつかの他の方法が存在しなければならない

Element is not clickable at point (570,793). Other element would receive the click: <html of popunder element>

。私は、ブラウザのウィンドウの高さを大量に設定しようとしましたが、うまくいかなかったのです。

答えて

0

私はスクロールダウンを終了しましたが、これはボタンが固定座標にあることがわかっている場合にのみ機能するので、これは最善の答えではありません。しかし、それは答えなので、コードを投稿します。

((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, 700)"); 
1

あなたは、ウィンドウの中央にそれをスクロールする任意のIWebElementsに拡張メソッドを調整して作成することができ、何かのように:

public static IWebElement Adjust(this IWebElement element) 
{ 
    var windowHeight = Convert.ToInt32(((IJavaScriptExecutor)driver).ExecuteScript("return window.innerHeight;")); 
    var scrollPage = element.Location.Y - windowHeight/2; 

    ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, " + scrollPage + ")"); 
    return element; 
} 

あなたはClickメソッドの前に)(を調整を呼び出す必要があります使用するには:

driver.FindElement(By.CssSelector("your-selector")).Adjust().Click(); 
関連する問題