2016-02-16 105 views
0
static By yearFoundErrorMessage = By.className("error");  
public static WebElement ca1_YearFoundError(WebDriver driver){ 
     element = driver.findElement(By.id("yearFoundErrorMessage")); 
     return element; 
    } 

//Main class from where I'm calling above function 
String errorMessage = Ca1GeneralInformation.ca1_YearFoundError(driver).getText(); 
     System.out.println(errorMessage); 


<div class="controls"> 
<input id="ca1_GEN_foundedDate" class="error" type="text" value="2008" maxlength="4" name="data[CaInformation][ca1_GEN_foundedDate]" tabindex="5" unsaved="true"> 
<span id="ca1_GEN_foundedDate_error" class="inline-error ajax-failed-msg"> 
<span class="error" for="ca1_GEN_foundedDate">Please enter a valid year (i.e. 2013)</span> 
</span> 
</div> 

我正在从事web应用程序,其中有跨度错误消息我想使用webdriver获取此跨度的文本。以上是我的html和代码,请帮助我。 在此先感谢。Selenium WebDriver Java - 我无法从范围获取动态文本

+0

尝试'driver.findElement(By.id( “ca1_GEN_foundedDate_error”));'。 – JRodDynamite

回答

1

yearFoundErrorMessage是一个By变量,但您将其作为字符串发送给另一个By。尝试这种

public static WebElement ca1_YearFoundError(WebDriver driver) { 
    element = driver.findElement(yearFoundErrorMessage); 
    return element; 
} 
+0

谢谢。这是一个混乱。我的代码工作正常。 :) –

0

尝试下面的XPath:

WebElement element = driver.findElement(By.xpath("//span[contains(text(),'Please enter a valid year')]"); 
String message = element.getText(); 
+0

感谢这是我的代码中的错误我试图找到两个不同的定位器的元素。 –

相关问题