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
  • etc.

 

Here are some examples:

 

C#

// 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);

 

Visual Basic

' 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)