我如何在循环中检查 JavascriptExecutor?

How can i Check JavascriptExecutor in loop?

如果字符串出错,我想退出循环,我无法检查它是否为空。

循环使用2个脚本并获取所有单元格,最后编译器报错。

如何在计算最后一个字符串(错误时间)之前退出?

谢谢

String script3 = "return document.getElementsByTagName('g')[" + f9 + "].textContent";
n = (String) ((JavascriptExecutor) driver).executeScript(script3, hiddenDiv); 

n 获取所有标签(g),最后给出一个非空错误,所以我无法停止循环。

我想在错误之前停止循环。

我这样做是为了计算标签。

使用 try catch 捕获错误并打破循环

for(...)
{
   try
   {
      //your javascript code HERE
   }
   catch(Exception ex)
   {
      string exMessage = getMessage();
      break;
   }
}

您可以使用findElements方法获取所有g标签

List<WebElement> gTags = driver.findElements(By.tagName("g"));

并获取g个标签的数量

int size = gTags.size();

有几种方法可以做到这一点。我会像下面那样做。基本上你使用 Java 脚本来获取所有 g 标签,遍历它们收集它们的 .textContent,然后 return 那个 List 到你的 Java 代码。然后,您可以循环遍历 Java 中的 List 并执行任何操作。

String script3 = "var strings = []; var g = document.getElementsByTagName('g'); for (var i = 0; i < g.length; i++) { strings.push(g[i].textContent); } return strings;";
List<String> s = (List<String>) ((JavascriptExecutor) driver).executeScript(script3);
System.out.println(s);