- terrynweze
- Posts : 5
Join date : 2012-03-01
Accessing dynamic attribute
Thu Mar 01, 2012 5:34 pm
Hello
I am struggling to get the value of an elements attribute that is generated dynamically
the
attribute data-state seen below is dynamically generated and changes
between closed & open depending as to whether or not the select
object is expanded or collapsed.
<1select id="state" class="validatable" data-vrule-required="true" data-vmessage-prefix="requestQuoteFormTemplate.state" name="state" data-state="closed">
The code i am using to access the attribute is as follows:
public boolean isStateDropDownMenuExpanded() {
return getElementBy(By.id("state")).getAttribute("data-state").equalsIgnoreCase("open");
}
I
get a null pointer exception as the attribute data-state is not found.
When i look at the source code for the page i can see that the attribute
is not seen within the source (see extracted source code below)
<1select
name="state" id="state" class="validatable"
data-vmessage-prefix="requestQuoteFormTemplate.state"
data-vrule-required="true">
any help with this problem would be greatly appreciated.
Note: i have added the number 1 within the select elements above as without it an actual select object is displayed on the page within this forum.
I am struggling to get the value of an elements attribute that is generated dynamically
the
attribute data-state seen below is dynamically generated and changes
between closed & open depending as to whether or not the select
object is expanded or collapsed.
<1select id="state" class="validatable" data-vrule-required="true" data-vmessage-prefix="requestQuoteFormTemplate.state" name="state" data-state="closed">
The code i am using to access the attribute is as follows:
public boolean isStateDropDownMenuExpanded() {
return getElementBy(By.id("state")).getAttribute("data-state").equalsIgnoreCase("open");
}
I
get a null pointer exception as the attribute data-state is not found.
When i look at the source code for the page i can see that the attribute
is not seen within the source (see extracted source code below)
<1select
name="state" id="state" class="validatable"
data-vmessage-prefix="requestQuoteFormTemplate.state"
data-vrule-required="true">
any help with this problem would be greatly appreciated.
Note: i have added the number 1 within the select elements above as without it an actual select object is displayed on the page within this forum.
- terrynweze
- Posts : 5
Join date : 2012-03-01
Re: Accessing dynamic attribute
Mon Mar 05, 2012 7:41 pm
Hello All,
Managed to solve this issue myself and feel a little stupid for not seeing the solution straight away.
I used some javasecript to get the value of the attribute and passed it back into the application
JavascriptExecutor exec = (JavascriptExecutor) webDriver;
String elementState = (String) exec.executeScript("return document.getElementById('state').getAttribute('data-state')");
Managed to solve this issue myself and feel a little stupid for not seeing the solution straight away.
I used some javasecript to get the value of the attribute and passed it back into the application
JavascriptExecutor exec = (JavascriptExecutor) webDriver;
String elementState = (String) exec.executeScript("return document.getElementById('state').getAttribute('data-state')");
Permissions in this forum:
You cannot reply to topics in this forum