如何使用Selenium和Python计算包含一个或多个相同类属性的元素数量?

问题描述 投票:0回答:3

enter image description here

在这段代码中,我如何计算full ng-scope类?除了empty ng-scope

请帮忙。

python-3.x selenium selenium-webdriver xpath css-selectors
3个回答
0
投票

要将具有class属性的元素数量计为full ng-scope,可以使用以下解决方案:

  • 使用css_selectorprint(len(driver.find_elements_by_css_selector("div.star-point>span.total span.full.ng-scope")))
  • 使用xpathprint(len(driver.find_elements_by_xpath("//div[@class='star-point']/span[@class='total']//span[@class='full ng-scope']")))

1
投票

要计算具有特定类的元素数量,您可以:

count = len(driver.find_elements_by_class_name('your_class_name'))

driver.find_elements返回与特定定位符匹配的元素列表,因此该列表的len()将是此类元素的数量。

在您的情况下,由于您的类名包含空格,因此最好使用xpath:

count = len(driver.find_elements_by_xpath("//span[@class='full ng-scope']"))

在此代码中,如何计算完整的ng-scope类?除了空的范围

上面的定位器将与您传递的字符串定位器完全匹配,因此它只搜索full ng-scope而不是empty ng-scope


0
投票

一个简单的CSS选择器

span.full.ng-scope

会在这里工作。它将匹配所有具有SPANfull类的ng-scopes,这些类将排除包含类empty的任何元素。

你想避免使用类似XPath

//span[@class='full ng-scope']

因为它在类上与'full ng-scope'进行了精确的字符串匹配,所以如果添加一个新的CSS类,该定位器将失败。如果交换了两个类名,它将失败。在所有情况下,CSS选择器仍然可以工作。它将减少您以后必须维护/更新定位器的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.