java
  • html
  • css
  • selenium
  • xpath
  • 2016-05-17 7 views 0 likes 
    0

    特定のテーブルの列の量を取得しようとしていますが、無効な属性があります。無効にされていないもののサイズ(表に表示されている列の量)を取得します。selenium-javaでxpathを使用するテーブルで無効な属性のサイズを取得する方法

    添付の画像で一部のtdsが無効になっています。 私はで動作するようにしようとしたコマンドは次のとおりです。

    driver.findElements(By.xpath("//*/table[@id='TABLE NAME]/tbody/tr[2]/td[@style='display:none;']")).size() 
    

    問題は値が無効TDS異なりますのでstyle='display:none;'は将来のテーブルに動作しない可能性がありますということです。 ありがとうございます。目に見えるものを返すように

    +0

    あなたは、表示されていないものは表示されません。 –

    +0

    はい、表示されているもののサイズが必要です。 –

    +0

    あなたは完全なソースコードを投稿して作業コードを作成することができます。 –

    答えて

    0

    、あなたはあなたのXPathでnotcontainsを使用することができます。

    driver.findElements(By.xpath("id('table-id')/tbody/tr[2]/td[not(contains(@style,'display:none'))]")).size() 
    

    またはCSSセレクタを持つ:

    driver.findElements(By.cssSelector("#table-id > tbody > tr:nth-child(2) > td:not([style*='display:none'])")).size() 
    

    もう一つの方法は持つすべての要素をフィルタリングするだろうWebElement::isDisplayed

    driver.findElements(By.cssSelector("#table-id > tbody > tr:nth-child(2) > td")) 
        .stream().filter(WebElement::isDisplayed).count() 
    
    +0

    あなたの答えは、表示されているものだけを表示するために、そのような特定の属性を使用せずにサイズを取得します。 –

    +0

    いいえ、 'style * = 'display:none''を使用しました。スタイルに' display:none'が含まれている場合はtrueになります。 –

    +0

    もう1つの例を追加して、可視要素の数をフィルタリングして取得しました。要素の数によってそれは遅くなることに注意してください。 –

    関連する問題