我使用Selenium和nodejs迭代html表并将数组中的字符串与表格单元格中的字符串匹配.
我的数组可能是["Name","Address1","Address2","Address3",...],tr [1]中的值将尝试与Arr [0]匹配,tr [2]与Arr [ 1]等
html表对于数组中的每个项都有一行,但是如果没有数据,比如说Address2则不会出现.
在这种情况下,tr [3]会发现它与Arr [3]不匹配.而不是移动到tr [4],我想看看tr [3]是否与Arr [4]匹配,然后是Arr [5]等.表中的项目总是与数组中的项目顺序相同,所以我不需要任何"无与伦比"的数组项.
我发布了整个函数,以防它相关,但问题似乎很简单,因为我不能得到"i = i - 1"来将新值带入下一个循环迭代.
我已经证明我进入了Else部分,并且i - 1的值正如我在那时所期望的那样.
var retrieveData = function retrieveData(Arr){
j = 0
driver.findElements(webdriver.By.xpath("//*[@class='table-container']")).then (function(rows){
rowCount = rows.length;
console.log("Row count = " + rowCount);
}).then (function(fn){
for (i = 1;i < rowCount + 1; i++){
(function(i){
var element = driver.findElement(webdriver.By.xpath("//div[@class='table-container']["+i+"]/div/strong/a"));
element.getText().then(function(Type){
var typefromArray = String(Arr[j].split(':')[0]);
if (Type == typefromArray){
// Do something
j = j + 1;
} else {
// Do …Run Code Online (Sandbox Code Playgroud)