有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Selenium WebDriver Java我无法从span获取动态文本

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>

我正在处理webapplication,其中span中有错误消息。我想使用webdriver获取此span的文本。上面是我的html和代码。请帮帮我。 提前谢谢


共 (2) 个答案

  1. # 1 楼答案

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

    public static WebElement ca1_YearFoundError(WebDriver driver) {
        element = driver.findElement(yearFoundErrorMessage);
        return element;
    }
    
  2. # 2 楼答案

    试试下面的xPath:

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