c#
  • selenium
  • visual-studio-2012
  • 2016-08-26 8 views 1 likes 
    1

    テーブル内のクリック可能なセルをクリックしようとしていますが(セルにはリンクがあります)、セル自体を見つけるためのテストはできません。私はiFrameをアクティブにすることはできますが、セルを見つけることができません。つまり、私はフレームを使用してナビゲートします。セレンC#は、リンクをクリックして表のセルを見つけることができません

    IWebElement objecElement = driver.FindElement(By.XPath("//*[@id='AreaID2_iframe']")); 
    driver.SwitchTo().Frame(objecElement); 
    

    が、その後、次の表のセルに

    driver.FindElement(By.XPath("//*[@id='lwDataGrid_r_0_c_5']")); 
    

    を見つけることができません下の次のリンクでは、次のように表の形式は次のとおりです。 -

    https

    感謝すべてのヘルプ。

    よろしく

    +0

    あなたが見つけることができませんどういう意味ですか?例外はありますか? –

    答えて

    0

    IWebElement objecElement = driver.FindElement(By.Id("AreaID2_iframe")); 
    driver.SwitchTo().Frame(objecElement); 
    
    var tableRow = driver.FindElements(By.Id("lwDataGrid_r_0_c_5")); 
    

    tableRow後にブレークポイントを入れて、それが要素を見つけたかどうかを確認、すなわち適切なセレクタを使用してみてください?

    0

    私はこれで問題がタイミングである、あなたはテーブルがロードされ、欲望要素は以下のように表示されるまで待つようにWebDriverWaitを使用してみてくださいと思う: -

    IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); 
    wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("AreaID2_iframe")); 
    
    IWebElement row = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("lwDataGrid_r_0_c_5"))); 
    
    関連する問題