指定されたxpath式で一致している要素の数をカウントする方法
xpath: driver.findElement(By.xpath("//div[contains(@id,'richedittext_instance')]"))
必要なのはカウントだけです。
このコードを試してください:
//Assume driver is intialized properly.
int iCount = 0;
iCount = driver.findElements(By.xpath("Xpath Value")).size());
には、同じ値iCount
を持つ要素の数があります。xpath
以下をせよ:
from selenium.webdriver.common.by import By
elements = driver.find_elements(By.XPATH, "Your_XPath")
これは s のリストを出力しますselenium.webdriver.firefox.webelement.FirefoxWebElement
(私の Firefox ブラウザーで)。
最後に、リストの長さを調べます。
len(elements)
注意。find_elements()
: (複数) と NOT と書いていることに注意してくださいfind_element()
。どちらも違います。find_element()
は最初に一致した Web 要素のみを返しますが、一致したすべての Web 要素のリストを見つけるには、 を使用する必要がありますfind_elements()
。
によって返される数のようなプリミティブではなく、XPath からノードを返すことのみを許可する Selenium では機能しませんcount(...)
。参照用に保持されており、より完全な XPath API を提供する他のほとんどのツールで有効です。
クエリから可能な限り少ない量のデータのみを返す必要があります。すべての要素を XPath エンジンから Selenium に渡す必要がないため、XPath内count(//div[contains(@id,'richedittext_instance')])
の結果の数をカウントします。
int
これをセレンからn として取得する方法についてはお手伝いできませんが、これは簡単なことです。