如何在循环中检查JavascriptExecutor?

时间:2016-07-03 10:52:51

标签: java selenium selenium-webdriver selenium-ide selenium-firefoxdriver

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

循环占用2个脚本并占用所有单元格,最后编译器会出错。

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

由于

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

n获取所有标签(g),最后它给出的错误不为空,所以我不能停止循环。

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

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

3 个答案:

答案 0 :(得分:1)

您可以使用g方法获取所有findElements代码

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

获取g代码的数量

int size = gTags.size();

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

有几种方法可以做到这一点。我会像下面这样做。基本上,您使用Javascript来获取所有g标记,循环收集它们的.textContent,然后将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);