从Selenium Webdriver WebElement字段中检索值并将其传递给java变量

时间:2013-11-05 19:50:48

标签: java class selenium webdriver selenium-webdriver

首先,请原谅初学者的问题。我是Java和Selenium Webdriver的新手。

我正在通过尝试测试CMS应用程序来学习Webdriver。 CMS具有创建文章并通过工作流发送文章的概念。因此,编辑可能会创建一篇文章并发送给超级用户。所以,我正在创建一篇文章作为编辑器,并使用sendKeys文本填充'Title'字段并附加创建日期:

public class EditorArticleCreator {

    private static WebDriver driver;
    private static String baseURL = TestEnv.getUrl();
    static WebDriverWait wait;
    Date date = new Date();
    static String articleName;

    public static String getArticleName(){
        return articleName;
    }

//some code and then:

driver.findElement(By.cssSelector("#Article_Title")).sendKeys("New_Article_" + date.toString());

我想要做的是将创建的Title的String值传递给一个变量,然后我可以在SuperUser的类中检索(通过Get方法)。

public class EditArticleSuperUser {

    EditorArticleCreator.getArticleName();

}

这样,我希望当我将WebDriver登录为SuperUser时,他们会选择正确的文章,因为完整的String将存储在articleName字段中。

这是最好的方法吗?我如何从driver.findElement获取String值?

2 个答案:

答案 0 :(得分:1)

您可以使用getAttribute获取文本输入的value属性:

WebElement articleTitleField = driver.findElement(By.cssSelector("#Article_Title"));
articleTitleField.sendKeys("New_Article_" + date.toString());
articleName = articleTitleField.getAttribute("value");

或者MrTi对articleTitleField.getText()的建议也会起作用!

答案 1 :(得分:0)

为什么不首先将标题存储在字符串变量articleName中,然后使用driver.findElement(By.cssSelector("#Article_Title")).sendKeys(articleName)填充文章标题的名称。然后,当您要验证它是否已正确发布时,请引用此articleName变量。