Firstly, forgive the beginner question. I'm a relative newcomer to both Java and Selenium Webdriver.
I am learning Webdriver through trying to test a CMS application. The CMS has the concept of creating articles and sending them through a workflow. So, an editor might create an article and send through to a SuperUser. So, I am creating an article as an editor and am populating the 'Title' field by using sendKeys text and appending the date of creation:
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());
What I want to do is pass the String value of the created Title into a variable that I can then retrieve in the class of the SuperUser (via a Get method).
public class EditArticleSuperUser {
EditorArticleCreator.getArticleName();
}
This way, I hope that when I have WebDriver login as the SuperUser, they will pick the correct article as the full String will be stored in the articleName field.
Is this the best way? How would I get the String value from the driver.findElement?
You could use getAttribute to get the value attribute of the text input:
Or MrTi's suggestion of articleTitleField.getText() would work too!
Why not store your title in a String variable
articleName
first, and then usedriver.findElement(By.cssSelector("#Article_Title")).sendKeys(articleName)
to populate the name of the Article's Title. Then reference thisarticleName
variable later when you want to verify it was posted appropriately.