gpt4 book ai didi

javascript - 如何在Selenium JS中获取子节点的数量

转载 作者:行者123 更新时间:2023-12-03 02:00:01 25 4
gpt4 key购买 nike

我正在为我的一个小项目抓取一个网站,我想获取教师姓名的数量。
名称位于 <tr><tbody> 下的标签标签。
我想将教员姓名插入列表中,现在我正在使用网站上当前的教员数量进行硬编码。目前还可以,但数字可能会改变,如果他们添加更多功能,我希望我的代码能够工作。

var listOfFaculties = [];
for(var i = 2; i <= 18; i++){ // start with inedx 2 and go to 18 (from the first to the last faculty on the site) -- HARDCODED
await driver.findElement(By.xpath(getXPath(i))).getText().then(function(value) {
listOfFaculties.push({
Faculty: value
});
});
}
function getXPath(num){
return "//div[@id = 'main']/center[2]/font[@class='normal']/table/tbody/tr[" + num + "]/td[1]";
}

有没有办法获取<tbody>的子节点数量标签?因此我可以将数字放入 for 循环中,而无需对边界进行硬编码。

最佳答案

使用WebElement列表来获取教师长度。

你修改后的代码应该是这样的 -

List<WebElement> elements = driver.findElements(By.xpath("//div[@id = 'main']/center[2]/font[@class='normal']/table/tbody/tr"));

var listOfFaculties = [];
for(var i = 2; i < elements.size(); i++){
await driver.findElement(By.xpath(getXPath(i))).getText().then(function(value) {
listOfFaculties.push({
Faculty: value
});
});
}

function getXPath(num){
return "//div[@id = 'main']/center[2]/font[@class='normal']/table/tbody/tr[" + num + "]/td[1]";
}

关于javascript - 如何在Selenium JS中获取子节点的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com