2017-06-23 9 views
0
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"); 
    } 
} 

Ich versuche, Webseiten in Javascript zu durchlaufen. Ich suche nach einem Element auf der Seite. Wenn ich das Element nicht finden kann, möchte ich, dass es die URL protokolliert und die Schleife fortsetzt. Das Problem ist, dass mein Code nur bei findElement stoppt und die Ausführung stoppt. Es erreicht nie meinen Fangblock. Bekomme ich nur den Fehler unten:Selenium JavaScript zu Schleife nach Ausnahme fortsetzen

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

Was mache ich falsch?

Antwort

1

Sie verwenden falsche selector, Wenn Sie das Element mit cssSelector suchen möchten, dann sollten Sie so etwas schreiben:

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

Anstelle von:driver.findElement(By.css("selector"));

findElement wird werfen ein Fehler, wenn das Element, nach dem Sie suchen, nicht existiert. Und wenn es nur ein Element, das Sie suchen, dann sollten Sie findElement schreiben oder wenn es viele Elemente dann findElements

+0

Lassen Sie mich wissen, ob es funktioniert? –

+0

Dies ist in JavaScript, nicht in Java. JavaScript Selenium Locator für CSS funktioniert korrekt wie ich es geschrieben habe. – qaNoob

0

Dieser Fehler verwenden vorhanden sind gekommen, wie Sie ungültigen Locator verwendet haben. Ihr Locator sollte cssSelector nicht css sein.

Ändern Sie diese Zeile driver.findElement (By.css ("Selektor")) zu driver.findElement (By.cssSelector ("Selektor")) und Ihr Programm würde wie erwartet funktionieren.

+0

Dies ist in JavaScript, nicht in Java. Dies ist die korrekte Syntax in JavaScript zum Suchen von CSS. – qaNoob

Verwandte Themen