sub ClickFormButtonByLabel { #ButtonLabel, optional: $popup, $WindowTitle, $SkipFiringOnClickEvent
Description: Clicks on a Form Button
by it's Label on the page.
How To:
Find the button in your html with View Source:
Example:
<html>
<body>
<form action="action2.php" method="POST">
Name <input type="text" name="name1" />
Age <input type="text" name="age1"><p>
<Button name="infotest" type='submit' value="Button One">Button One</Button><p>
</form>
<form action="action2.php" method="POST">
Name <input type="text" name="name2"/>
Age <input type="text" name="age2" /><p>
<Button name="infotest" type='submit' value="Button Two">Button Two</Button><p>
</form>
<form action="action2.php" method="POST">
Name <input type="text" name="name3"/>
Age <input type="text" name="age3" /><p>
<Button name="infotest" type='submit'value="Button Three">Button
Three</Button><p>
</form>
<form action="action2.php" method="POST">
Name <input type="text" name="name4" />
Age <input type="text" name="age4" /><p>
<Button name="infotest" type='submit' value="Button Four">Button
Four</Button><p>
</form>
<form action="action2.php" method="POST">
Name <input type="text" name="name5" />
Age <input type="text" name="age5" /><p>
<Button name="infotest" type='submit' value="Button Five">Button
Five</Button><p>
</form>
<form action="action2.php" method="POST">
Name <input type="text" name="name6" />
Age <input type="text" name="age6" /><p>
<Button name="infotest" type='submit' value="Button Six">Button Six</Button><p>
</form>
</body>
</html>
If you want to click on the button with the
label Button Three.
$seconds = ClickFormButtonByLabel("Button Three");
Cookbook Recipe:
use Win32::OLE; use Win32::SAM; #use Win32::Slingshot: $| = 1; my $URL = "http://samie.sf.net/formbuttonbylabel.html"; my $IEDocument; my $seconds; $Win32::OLE::Warn = 3; StartIE(); $seconds = Navigate($URL); print "simpleform.html page took $seconds seconds to load\n"; SetEditBox("name1","Groucho"); SetEditBox("age1","1"); SetEditBox("name2","Chico"); SetEditBox("age2","2"); SetEditBox("name3","Harpo"); SetEditBox("age3","3"); SetEditBox("name4","Zeppo"); SetEditBox("age4","4"); SetEditBox("name5","Ben Grimm"); SetEditBox("age5","5"); SetEditBox("name6","Reed Richards"); SetEditBox("age6","6"); $seconds = ClickFormButtonByLabel("Button Three"); print "Answer Page took $seconds seconds to load\n";
Further Notes:
The second parameter $popup is optional. It tells samie that the FormButton is going to raise a popup window.
The third parameter $WindowTitle is optional. It tells samie that the name of the Window that contains the button. The fourth parameter $SkipFiringOnClickEvent is optional. It is used when you do not need to fire an OnClick Event.