2017-02-15 3 views
3

Ich sah similar Fragen bei stackoverflow und habe nichts gefunden, was mir helfen kann.Wie bekomme ich Text aus der Spannungsklasse mit Selenium ChromeDriver

Ich habe folgende HTML-Code:

<span class="help-block ng-scope" translate="">Company</span> 

Wie kann ich dieses Element finden (Java)? Ich habe versucht, folgende Varianten:

driver.findElement(By.cssSelector(".help-block.ng-scope")) 

driver.findElement(By.xpath("//span[contains(@class, "Company")]")) 

Ich habe versucht, auch nur XPath von Browser-Konsole auf zwei Arten zu kopieren:

Erstens:

driver.findElement(By.xpath("//*[@id="ngCloudike"]/body/div[6]/div/div/div/div/form/div[1]/div[6]/span")) 

Zweitens:

driver.findElement(By.xpath("/html/body/div[6]/div/div/div/div/form/div[1]/div[6]/span")) 

auch i habe versucht, By.ClassName zu finden, aber ich kann das nicht machen, weil es Leerzeichen gibt. Also, wie kann ich Element so finden?

Antwort

0

Try unten Ausdruck:

driver.findElement(By.xpath("//span[text()='Company']")) 

Wenn Sie NoSuchElementException mit diesem Code erhalten, versuchen einige Zeit hinzuzufügen vorhanden und sichtbar zu warten, bis Element:

WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='Company']")) 

Wenn Sie erhalten NoSuchElementException sogar mit ExplicitWait Möglicherweise befindet sich das Zielelement in einem iframe. So behandeln Element innerhalb eines iframe:

driver.switchTo().frame("iframeNameOrId"); 
driver.findElement(By.xpath("//span[text()='Company']")); 
+0

Noch NoSuchElementException –

+0

Oh mein Gott. Vielen Dank! Ich habe vergessen, zwischen den Aktionen Schlaf hinzuzufügen ... –

+0

U 'sing' ExplicitWait' (http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits) ist viel besser als das Schlafen - es erlaubt, Zeit zu sparen. Wenn meine Antwort Ihnen hilft, das Problem zu lösen, markieren Sie es als "Akzeptiert". Vielen Dank – Andersson

Verwandte Themen