我正在使用Selenium和Java。我无法从span标记获取文本,每次都返回一个空字符串。 HTML代码:
<div class="fade-repeat-animation alert ng-isolate-scope alert-error" ng-class="type && "alert-" + type" ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)">
<button class="close" ng-click="close()" type="button" ng-show="closeable">×</button>
<div ng-transclude="">
<span class="ng-scope ng-binding">This text</span>
</div>
</div>
&#13;
这是Selenium代码:
String ipError = within(secs(10)).div(By.xpath("//div[@class='fade-repeat-animation alert ng-isolate-scope alert-error']/div/span")).getAttribute("innerHTML");
我尝试使用getText()
和getAttribute("textContent")
,但始终返回空String
。
答案 0 :(得分:0)
可能是因为angularJS Webdriver无法从UI读取文本。 尝试使用此代码,让我知道它是否有效。
driver.findElement(By.cssSelector(".fade-repeat-animation.alert.ng-isolate-scope .alert-error")).getText();
答案 1 :(得分:0)
您必须尝试使用getText()
方法,请尝试使用此代码
String Spantext=driver.findElement(By.xpath("//span[@class='ng-scope ng-binding']")).getText();
System.out.println(Spantext);
答案 2 :(得分:0)
根据您提供的HTML
打印文字 This text
,您可以使用以下代码行:
System.out.println(new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='fade-repeat-animation alert ng-isolate-scope alert-error']//div/span[@class='ng-scope ng-binding']"))).getAttribute("innerHTML"));