Common HTML Control Actions

What are some of the things we can do after finding the element we want to act upon? We can:

  • Click on elements

  • Perform mouse actions on elements

  • Check/uncheck radio buttons and checkboxes

  • Invoke events such as OnClick, OnFocus

  • Capture an image snapshot

  • Make selections of a drop down

Here are some examples:

// All controls have a Click/MouseClick. The .Click invokes a click from the DOM,
// the MouseClick(), moves the mouse to the control and clicks it.

//
// CLICKING
//
Find.ById<HtmlInputButton>("button1").Click();
ActiveBrowser.Refresh();
Find.ById<HtmlInputButton>("button1").MouseClick();

// You can capture any element on the page using the .Capture()
Find.ById<HtmlInputImage>("image1").Capture("myfile"); // Will be stored to the Log.LogLocation

//
// CHECKING
//
// Check a checkbox and invoke the onclick event.
HtmlInputCheckBox ck = Find.ById<HtmlInputCheckBox>("checkbox1");
ck.Check(true, true);

// Query the checked state
Assert.IsTrue(ck.Checked);
// You can also simply set the value without invoking the clicked event.
ck.Checked = false;
Assert.IsFalse(ck.Checked);

// Get whether a checkbox is enabled or disabled.
HtmlInputCheckBox cks = Find.ById<HtmlInputCheckBox>("checkbox1");
bool disabled = cks.GetValue<bool>("disabled");

// Disable it
cks.SetValue<bool>("disabled", true);
Assert.IsTrue(cks.GetValue<bool>("disabled"));

// Is it visible
Assert.IsTrue(cks.IsVisible());

// When the contents of a div element are larger than the declared
// width or height of element it automatically adds scroll bars.
// When that happens we can scroll the contents of the div element.
// The value represents the offset in pixels to scroll the contents.
HtmlDiv infoDiv = Find.ById<HtmlDiv>("AutoInfo");
infoDiv.ScrollTop = 50;
infoDiv.ScrollLeft = 75;

// Get the color style
HtmlSpan mySpan = Find.ById<HtmlSpan>("Warning");
HtmlStyle styleColor = mySpan.GetStyle("color");
string strColor = mySpan.GetStyleValue("color");

// Getting the computed style will follow the CSS chain and return the
// style.
HtmlStyle styleMargin = mySpan.GetComputedStyle("margin");
string strMargin = mySpan.GetComputedStyleValue("margin");

//
// SELECTING
//
HtmlSelect select = Find.ById<HtmlSelect>("select1");
Assert.IsTrue(select.SelectedOption.Value.Equals("Option1Text"));
Assert.IsTrue(select.SelectedOption.Text.Equals("Option1"));
Assert.IsTrue(select.SelectedIndex.Equals(0));

select.SelectByIndex(1);
Assert.IsTrue(select.SelectedOption.Text.Equals("Option2"));

//
// MULTI-SELECTING
//
HtmlSelect multi_select = Find.ById<HtmlSelect>("select2");
multi_select.MultiSelectByText("E3145", "R4325", "W4573", "L5623");
multi_select.MultiSelectByValue("E3145", "R4325", "W4573", "L5623");

HtmlOption opt0 = multi_select.Options[0];
HtmlOption opt2 = multi_select.Options[2];
HtmlOption opt4 = multi_select.Options[4];
multi_select.MultiSelect(opt0, opt2, opt4);

//
// SET TEXT
//
Find.ById<HtmlTextArea>("textarea1").Text = "NEW TEXT";

// Access common methods
HtmlAnchor link = Find.ByAttributes<HtmlAnchor>("href=~google");
Assert.IsTrue(link.Attributes.Count == 3);
Assert.IsTrue(link.BaseElement.TextContent.Trim().Equals("Link"));

// Invoke any events on the control
link.InvokeEvent(ScriptEventType.OnFocus);
' All controls have a Click/MouseClick. The .Click invokes a click from the DOM,
' the MouseClick(), moves the mouse to the control and clicks it.   

'
' CLICKING
'
Find.ById(Of HtmlInputButton)("button1").Click()
ActiveBrowser.Refresh()
Find.ById(Of HtmlInputButton)("button1").MouseClick()

' You can capture any element on the page Imports the .Capture()
Find.ById(Of HtmlInputImage)("image1").Capture("myfile")    ' Will be stored to the Log.LogLocation

'
' CHECKING  
'
' Check a checkbox and invoke the onclick event.   
Dim ck As HtmlInputCheckBox = Find.ById(Of HtmlInputCheckBox)("checkbox1")
ck.Check(True, True)    

' Query the checked state
Assert.IsTrue(ck.Checked)   
' You can also simply set the value without invoking the clicked event.
ck.Checked = False  
Assert.IsFalse(ck.Checked)

' Get whether a checkbox is enabled or disabled.
Dim cks As HtmlInputCheckBox = Find.ById(Of HtmlInputCheckBox)("checkbox1")   
Dim disabled As Boolean = cks.GetValue(Of Boolean)("disabled")   

' Disable it
cks.SetValue(Of Boolean)("disabled", True)   
Assert.IsTrue(cks.GetValue(Of Boolean)("disabled"))

' Is it visible   
Assert.IsTrue(cks.IsVisible())

' When the contents of a div element are larger than the declared
' width or height of element it automatically adds scroll bars.   
' When that happens we can scroll the contents of the div element.
' The value represents the offset in pixels to scroll the contents.   
Dim infoDiv As HtmlDiv = Find.ById(Of HtmlDiv)("AutoInfo")
infoDiv.ScrollTop = 50   
infoDiv.ScrollLeft = 75

' Get the color style
Dim mySpan As HtmlSpan = Find.ById(Of HtmlSpan)("Warning")   
Dim styleColor As HtmlStyle = mySpan.GetStyle("color")
Dim strColor As String = mySpan.GetStyleValue("color")

' Getting the computed style will follow the CSS chain and return the
' style.   
Dim styleMargin As HtmlStyle = mySpan.GetComputedStyle("margin")
Dim strMargin As String = mySpan.GetComputedStyleValue("margin")

'
' SELECTING 
'  
Dim select1 As HtmlSelect = Find.ById(Of HtmlSelect)("select1")   
Assert.IsTrue(select1.SelectedOption.Value.Equals("Option1Text"))   
Assert.IsTrue(select1.SelectedOption.Text.Equals("Option1"))   
Assert.IsTrue(select1.SelectedIndex.Equals(0))

select1.SelectByIndex(1)
Assert.IsTrue(select1.SelectedOption.Text.Equals("Option2"))    

'
' MULTI-SELECTING   
'
Dim multi_select As HtmlSelect = Find.ById(Of HtmlSelect)("select2")   
multi_select.MultiSelectByText("E3145", "R4325", "W4573", "L5623")
multi_select.MultiSelectByValue("E3145", "R4325", "W4573", "L5623")

Dim opt0 As HtmlOption = multi_select.Options(0)   
Dim opt2 As HtmlOption = multi_select.Options(2)
Dim opt4 As HtmlOption = multi_select.Options(4)  
multi_select.MultiSelect(opt0, opt2, opt4)

'
' SET TEXT   
'
Find.ById(Of HtmlTextArea)("textarea1").Text = "NEW TEXT"

' Access common methods
Dim link As HtmlAnchor = Find.ByAttributes(Of HtmlAnchor)("href=~google")   
Assert.IsTrue(link.Attributes.Count = 3)
Assert.IsTrue(link.BaseElement.TextContent.Trim().Equals("Link"))

' Invoke any events on the control
link.InvokeEvent(ScriptEventType.OnFocus)