I am doing some test with Selenium IDE but I want to enter a value and get it after, is it possible ?
I have already tested the command store but it's not what I want...
Thanks
Get the text and store in a variable:
<tr>
<td>open</td>
<td>http://cnn.com</td>
<td></td>
</tr>
<tr>
<td>storeText</td>
<td>//h2[#class="banner-text banner-text--natural"]</td>
<td>buttonText</td>
</tr>
<tr>
<td>echo</td>
<td>${buttonText}</td>
<td></td>
</tr>
Related
I would like to stop the execution of a test case if a condition is true.
So vice versa of assert. Something like BreakIfElementPresent
Possible?
I have used gotoIf statements to fail some of my tests for logging.
<tr>
<td>storeElementPresent</td>
<td>link=New Query</td>
<td>isPresent</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${isPresent} == true</td>
<td>querycreationtestpass</td>
</tr>
<tr>
<td>click</td>
<td>"Test failed because new query wasnt created"</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>querycreationtestpass</td>
<td></td>
</tr>
This also shows up in the logs as
"Test failed because new query wasn't created"
which allows me to diagnose what went wrong
---Jump down to my edit with a simplistic example---
I have searched Ad Nauseum, and spent hours getting this close, but still not solving my automation problem.
Here's the thing I convert the local paper from the print edition to the online edition through PDF's, the content gets pushed to the website and is not live, until I go in and edit some settings, a lot of these are redundant. so if I can get past this one point I'm golden and can shave literally hours off of the time it takes to do this work.
The paper has twenty or thirty writers, and the one_off_byline can vary a bit here is some examples.
id=id_one_off_byline value="Michael Reid" however it may also look like the these next two or some variation thereoff even.
id=id_one_off_byline value="By Michael Reid"
id=id_one_off_byline value="By Michael Reid - Your Daily Paper"
I have used storeTextPresent to find Michael on the page. however the problem is there is another select value box on the page that contains every writers name in a selection box, which is what I'm actually trying to populate. So here is what I have
<tr>
<td>storeTextPresent</td>
<td>Jeff</td>
<td>IsTextAppears</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${isTextAppears}</td>
<td>Jeff</td>
</tr>
<tr>
<td>storeTextPresent</td>
<td>Graham</td>
<td>IsTextAppears</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${isTextAppears}</td>
<td>Graham</td>
</tr>
<tr>
<td>label</td>
<td>Jeff</td>
</tr>
<tr>
<td>label</td>
<td>Graham</td>
</tr>
Another way to phrase this I hope___
Form Field 1 (ignore syntax, I'm just setting up an example here) the id= is the important part in the two form fields.
<select name="select" id="pick_animal" value="">
< option="the fast cat" id="1">
< option="the fast dog" id="2">
</select>
Form Field 2
<input type="text" id="some_animal" value="the fast cat from dover">
I need to detect that id="some_animal" contains cat
so I can perform an action on the correct option in field 1.
I can do the second part just fine, I just can't detect "cat" in only the input with id "some_animal"
storeTextPresent just looks for cat to exist anywhere on the page. ugh!!
<tr>
<td>storeTextPresent</td>
<td>Jeff</td>
<td>IsTextAppears</td>
</tr>
<tr>
<td>gotoIf</td>
<td>${isTextAppears}==Jeff</td>
<td>Jeff</td>
</tr>
<tr>
<td>goto</td>
<td>END</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>Jeff</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>something</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>END</td>
<td></td>
</tr>
Try like this.
I'm using Selenium IDE to create my tests,I am testing a ticketing system ,in one of my case i want the total count of the new listed tickets,i tried commands like "storeAllLinks" ,"storeAllFields" but i didnt get the count i needed .is there any way to get the count,please help me out.
The storeAllLinks and storeAllFields return arrays. You can use storeEval to run a .length with JavaScript on the array to count the number of items. Use the stored value as you wish, in this case I just write it out to the IDE console.
<tr>
<td>storeAllLinks</td>
<td>aLinks</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['aLinks'].length</td>
<td>numberOfLinks</td>
</tr>
<tr>
<td>echo</td>
<td>${numberOfLinks}</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=release_date</td>
<td>2012-09-30</td>
</tr>
This works but I don't want to type the date but pick it using DatePicker and try automating it.
This will vary greatly depending on how your datepicker is coded. For example, I'm working on a Web app that utilizes Dojo and I'm using the following code to select a specific position within the datepicker pop-up instead of a particular date (because the actual date isn't important for my tests):
<tr>
<td>waitForElementPresent</td>
<td>//*[#id="startDate"]</td>
<td></td>
</tr>
<tr>
<td>clickAt</td>
<td>xpath=(//input[#value='▼ '])[3]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//table[#id='startDate_popup']/tbody/tr/td[4]/span</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//table[#id='startDate_popup']/tbody/tr/td[4]/span</td>
<td></td>
</tr>
I use waitForElementPresent frequently to make sure the JavaScript has time to complete running before the next step in the test is executed.
I've also found that clickAt is useful when clicking within Dojo widgets, and I typically prefer to use XPath for specific targets.
I hope this helps!
As newbie in Selenium IDE these days I done some tests who includes the date picker too.
I'll paste my HTML code, but if you have any problems or anything feel free to ask.
<!--Set some random generators for Hour From/To-->
<tr>
<td>storeEval</td>
<td>[Math.floor((Math.random() * 31) + 1)]</td>
<td>random</td>
</tr>
<tr>
<td>click</td>
<td>//select[#id='valid']/option[3]</td>
<td></td>
</tr>
<!--Add values to From date and To date-->
<tr>
<td>click</td>
<td>id=p_date_from</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=${random}</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[#id='valid_period']/p[2]/span/span/abbr</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>[Math.floor((Math.random() * 10) + 1)]</td>
<td>random</td>
</tr>
<tr>
<td>click</td>
<td>link=${random}</td>
<td></td>
</tr>
I am using SIDE 1.3.0 along with FF 6.0.2.
I stored a string using store text command which contains a "URL" by using the following command.
storeText
which results as
MyCode = "<iframe src="http://myportal.com/mysales/Agent/index/4eb29642ce24e8.22143850/embedded" height="650" width="605" frameBorder="0"></iframe>"
I need to have only the URL part in another variable from the string above "http://myportal.com/mysales/Agent/index/4eb29642ce24e8.22334455/embedded"
in order to proceed with the remaining test case. Thanks in advance.
Something like:
<tr>
<td>storeEval</td>
<td>'${MyCode}'.replace(/.*src="(.*?)".*/, $1)</td>
<td>url</td>
</tr>
This will use JavaScript to set a variable called url to the value of the src attribute within your MyCode variable.
The first command below stores the href attribute of any element, you can modify it to your needs.
The third command uses javascript to get the pathname attribute of the DOM object.
Hope this answers your question.
If you open the IDE click on the source tab in the main window and copy and paste the code below between the tags, you'll be able to run the test on this page, or any other stack overflow page.
<tr>
<td>storeAttribute</td>
<td>css=.profile-link#href</td>
<td>href</td>
</tr>
<tr>
<td>echo</td>
<td>${href}</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>this.browserbot.getUserWindow().document.getElementsByClassName('profile-link')[0].pathname</td>
<td>pathname</td>
</tr>
<tr>
<td>echo</td>
<td>${pathname}</td>
<td></td>
</tr>