Selenium JavaScript在异常后继续循环

时间:2017-06-23 01:13:00

标签: javascript selenium try-catch

for (let n = 0; n < someNumber; n++){ 
  try {
    driver.get(url[n]);
    driver.findElement(By.css("selector"));
  } catch (err){
    console.log(url[n] + "did not load");
  }
}

我试图在Javascript中循环浏览网页。我正在寻找页面上的元素。如果我找不到该元素,我希望它记录URL并继续循环。问题是我的代码只停在findElement并停止执行。它永远不会到达我的拦截块。我只是得到以下错误:

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector"

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您使用了错误的selector,如果您想使用 cssSelector 找到该元素,那么您应该写下这样的内容:

driver.findElement(By.cssSelector("Location of your WebElement"));
Example : 
driver.findElement(By.cssSelector("input[id=email]"));

取代: driver.findElement(By.css("selector"));

如果您要搜索的元素不存在,

findElement将抛出错误。 如果您只需要一个元素,那么您应该写findElement或者如果有多个元素存在则使用findElements

答案 1 :(得分:0)

由于您使用了无效的定位器,因此出现此错误。您的定位器应为 cssSelector 而不是 css

将此行 driver.findElement(By.css(“selector”))更改为 driver.findElement(By.cssSelector(“selector”)),您的程序将按预期工作。