我有一个html代码段,如下所示:
<div class="hb-felt">
<ul class="hb-feltlist">
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-untouched ng-pristine ng-valid"
disableelementilesemodus="" type="checkbox"
id="refusalTooExpensive">
<label class="hb-label" for="refusalTooExpensive">Too
expensive
</label>
</li>
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-untouched ng-pristine ng-valid"
disableelementilesemodus="" type="checkbox"
id="refusalInvalid">
<label class="hb-label" for="refusalInvalid">Invalid</label>
</li>
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-untouched ng-pristine ng-valid"
disableelementilesemodus="" type="checkbox"
id="refusalEconomy">
<label class="hb-label" for="refusalEconomy">Economy-related
refusal</label>
</li>
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-untouched ng-pristine ng-valid"
disableelementilesemodus="" type="checkbox"
id="refusalLackingPrimaryFunds">
<label class="hb-label" for="refusalLackingPrimaryFunds">Lacking
primary funds</label>
</li>
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-untouched ng-pristine ng-valid"
disableelementilesemodus="" type="checkbox"
id="refusalSecondaryFunds">
<label class="hb-label" for="refusalSecondaryFunds">Lacking
secondary funds</label>
</li>
<li data-selector="refusal_alt" class="ng-star-inserted">
<input class="hb-checkbox ng-valid ng-dirty ng-touched"
disableelementilesemodus="" type="checkbox" id="refusalOther">
<label class="hb-label" for="refusalOther">Other</label>
</li>
</ul>
</div>
如您所见,每个列表元素都包括标记data-selector=“refusal_alt”
。这对所有元素都是相同的。
这是一个动态创建的列表,id-tag和label文本将有所不同(但数据选择器将始终相同)。
对于Selenium来说,最好的方法是什么来完成这些操作,并列出所有的id标签或标签文本?
这将选择具有li
父元素的所有label
元素,父元素的data-selector
属性设置为refusal_alt
。然后,迭代匹配的元素,对于每个匹配的元素,确定它的文本并将结果放入结果列表:
List<WebElement> matchedElements = driver.findElement(By.cssSelector("li[data-selector='refusal_alt'] > label"));
List<String> labels = matchedElements.stream().map(element -> element.getText()).collect(Collectors.toList());
甚至更短(标签):
List<String> labels = driver.findElement(By.cssSelector("li[data-selector='refusal_alt'] > label")).stream().map(element->element.getText()).collect(Collectors.toList());
(ID):
List<String> ids= driver.findElement(By.cssSelector("li[data-selector='refusal_alt'] > label")).stream().map(element->element.getAttribute("for")).collect(Collectors.toList());
问题内容: 我目前有一张看起来像这样的表: 我需要做的是获得“ 费率”列的信息,但每个名称仅获得一次。例如,我有三行John Doe,每行的比率为8。我需要将这些行的比率设为8,而不是24,因此它为每组名称都对比率进行一次计数。 当然是行不通的,因为我试图对比率列而不是名称求和。我知道在对单个记录进行计数时,我可以使用,这就是我试图从中得到的行为类型。 我怎样才能为每个名字获得一个比率? 提前致谢
我正在使用pyspark下面是我的数据
我有一个名为Trade的实体,它可以映射到包含属性的表。这个实体也有一个字段,存储来自另一个表的值。我的贸易表包含第二个表的主键。我知道如何获得整个第二个表作为实体在我的贸易实体,但我只想要1列。 如你所见,我尝试了,但是连接是在贸易实体的主密钥上执行的。我如何使用注释从贸易表中选择外键,将其连接到第二/第三表,并直接只从col2/col3中获取值?任何建议都很感激 餐桌贸易: 表2: 表3: 现
问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正
我正在尝试使用Java8流来组合列表。如何从两个现有列表中获得“对称差异列表”(只存在于一个列表中的所有对象)。我知道如何获取intersect列表,也知道如何获取union列表。 示例代码:
问题内容: 请查看下面的html代码段: 当td [1]包含“ Single”时,我试图声明td [2]的值。我试过以下的各种变体: //td[2][(contains(text(),’£14.00’))]/../td[1][(contains(text(),’Single’))]] 我已经在其他地方成功使用了类似的符号-但在这里无济于事…我认为这取决于td [1]具有嵌套元素,但不确定。 有人能