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"
我做错了什么?
答案 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”)),您的程序将按预期工作。