[英]how to get count of child elements using selenium web-driver for nodejs
我搜索了很多地方,但我沒有得到答案
這是我的html:
<form id="search_form_homepage" >
...
<div class="search__autocomplete" style="display: block;">
<div class="acp-wrap js-acp-wrap">
<div class="acp" data-index="0"><span class="t-normal">elephant</span>cheap auto</div>
<div class="acp" data-index="1"><span class="t-normal">elephant</span>asia</div>
...
...
<div class="acp" data-index="2"><span class="t-normal">elephant</span>africa</div>
</div>
...
</div>
</form>
我只需要使用類acp-wrap js-acp-wrap
來獲取 div 中存在的<div>
div
計數
我可以達到這一點,但被卡住了:
let xyz = driver.findElements(By.className(".acp-wrap js-acp-wrap>div"));
您需要使用By.css
通過以下方式獲取元素: .acp-wrap js-acp-wrap > div
。 此外,您的選擇器不正確。 當你按類選擇一個元素時,你需要在類名前加上一個句點: .acp-wrap.js-acp-wrap > div
(也去掉acp-wrap
和js-acp-wrap
之間的空格)。
這是您現在如何獲取該元素的方法:
let xyz = driver.findElements(By.css(".acp-wrap.js-acp-wrap > div"));
現在要獲取計數,您可以獲得xyz
的length
屬性。 但是由於driver.findElement
返回一個 promise,你需要使用 async-await。 您可以創建一個函數:
async function getCount() {
let xyz = await driver.findElements(By.css(".acp-wrap.js-acp-wrap > div"));
const count = xyz.length;
return count;
}
當你調用函數時:
getCount().then(function(count) {
// your stuff there
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.