Hello!
I am new in WebAii and, to be honest, I am new in C# programming.
I try creating my own project or using a sampler (SilverlightHealthcareSample.cs). I have an error with message:
Test method QuickStarts_VSTS_CS.SilverlightHealthcareSample.HealthCareDemo threw exception: System.NullReferenceException: Object reference not set to an instance of an object..
at ArtOfTest.Common.TreeCrawler`3.SearchUsingNonHierarchialMatch(ITargetElement startNode, IList`1 clauses, V expression, Boolean ignoreConstraints)
at ArtOfTest.Common.TreeCrawler`3.Find(T startNode, IList`1 clauses, V expression, Boolean includeRoot, Boolean ignoreContraints)
at ArtOfTest.Common.TreeCrawler`3.ByExpression(T startNode, V expression, Boolean includeRoot)
at ArtOfTest.Common.TreeCrawler`3.ByExpression(V expression)
at ArtOfTest.WebAii.Silverlight.VisualFind.ByName(String name)
at ArtOfTest.WebAii.Silverlight.SilverlightApp.FindName(String name)
at QuickStarts_VSTS_CS.SilverlightHealthcareSample.HealthCareDemo() in C:\..\UnitTest1.cs:line 155
Error is occurred when I try to use any Find method.
My code (only interesting lines, actually it is all from the sampler):
[TestInitialize()]
public void MyTestInitialize()
{
Settings settings = GetSettings();
settings.EnableSilverlight = true;
Initialize(settings, new TestContextWriteLine(this.TestContext.WriteLine));
SetTestMethod(this, (string)TestContext.Properties["TestName"]);
}
[TestMethod]
[Description("Automate a complex Silverlight application")]
public void HealthCareDemo()
{
Manager.Settings.ExecutionDelay = 10;
Manager.LaunchNewBrowser(BrowserType.InternetExplorer);
System.Drawing.Point loc = ActiveBrowser.Window.Location;
ActiveBrowser.NavigateTo("http://www.mscui.net/PatientJourneyDemonstrator/PrimaryCareAdmin.htm");
ActiveBrowser.Window.Move(new System.Drawing.Rectangle(loc, new System.Drawing.Size(1024, 768)), true);
//SilverlightApp app = ActiveBrowser.SilverlightApps()[0];
// I have an error on the line above, but with line below works fine
SilverlightApp app = ActiveBrowser.SilverlightApps().First();
app.FindName("guideButton").User.Click(); // <= I have the error there
}
Also I tried to use construction like this:
TextBox name1 = app.Find.ByName<TextBox>("name1");
FrameworkElement ss = app.Find.ByName("name1");
I have the same error.
I tried to run that code with the latest version of WebAii 2.0 from ArtOfTest site. After that I uninstalled WebAii and installed WebAii (Testing Framework 2010.1.412.FREE_EDITION) from Telerik site. But the error is still present.
Could you please give me an advice to solve the issue? May be something wrong with my environment?
MS Win XP Professional SP 3 English
Visual Studio 2008
IE 8.0.6001.18702
MS Silverlight 3.0.50106.0 (add-ons is enabled in IE)
WebAii Test Execution Extension 2.0.50727.3053 (add-ons is enabled in IE)
Thanks for your attention.
In one of the threads before I read that we can't have two manager objects as I noticed when getting all pipe busy message. What is the suggested way in creating X number of browser sessions and navigating them indipendently?
This didn't work for me:
Manager.LaunchNewBrowser(BrowserType.InternetExplorer, true);
Manager.LaunchNewBrowser(BrowserType.InternetExplorer, true);
...
...
int numberOfBrowsers = Manager.Browsers.Count; //shows correct number of browser sessions
Manager.Browsers[0].Window.Show();
Manager.Browsers[0].Window.SetActive();
//how to find an element in silverlight page that is on the list
Pages.PageName.MyButton.Click(false);
Manager.ActiveBrowser.Window.Minimize();
Manager.Browsers[1].Window.Show();
Manager.Browsers[1].Window.SetActive();
Pages.PageName.MyButton.Click(false); //problem with this - it can't find this element to click on
...
...
Any Ideas? Thanks.
<telerik:RadAjaxPanel ID="AjaxPanel" |
runat="server" |
LoadingPanelID="AjaxLoadingPanel" |
ClientEvents-OnResponseEnd="ajaxResponseEnd" |
ClientEvents-OnRequestStart="ajaxRequestStart"> |
<telerik:RadToolBar ID="SuperUser" |
runat="server" |
Width="100%" |
Visible="false"> |
<Items> |
<telerik:RadToolBarDropDown Text="Information" |
ID="InformationButton" |
runat="server" |
Visible="false"> |
<Buttons> |
<telerik:RadToolBarButton runat="server" |
ID="GpDatabase" |
Enabled="false" /> |
<telerik:RadToolBarButton runat="server" |
ID="GpCompanyId" |
Enabled="false" /> |
<telerik:RadToolBarButton runat="server" |
ID="TransFirstMode" |
Enabled="false" /> |
<telerik:RadToolBarButton runat="server" |
ID="DatabaseServer" |
Enabled="false" /> |
</Buttons> |
</telerik:RadToolBarDropDown> |
<telerik:RadToolBarButton ID="SalesRep" |
runat="server" |
Visible="false"> |
<ItemTemplate><img src="~/img/user_go.png" runat="server" style="vertical-align: middle;" /> Select Sales Rep: </ItemTemplate> |
</telerik:RadToolBarButton> |
<telerik:RadToolBarButton ID="OriginalOwner" |
runat="server" |
Group="SalesReps" |
CheckOnClick="true" |
Checked="true" |
ImageUrl="~/img/user_gray.png" |
Visible="false" /> |
<telerik:RadToolBarButton ID="CurrentRep" |
runat="server" |
Group="SalesReps" |
CheckOnClick="true" |
ImageUrl="~/img/user_edit.png" |
Visible="false" /> |
</Items> |
</telerik:RadToolBar> |
<telerik:RadListView ID="Projects" |
runat="server" |
ItemPlaceHolderID="ProjectHolder" |
AllowPaging="true" |
AllowCustomPaging="true" |
PageSize="6"> |
<LayoutTemplate> |
<div class="RadListView RadListViewFloated RadListView_<%# Container.Skin %>"> |
<table style="margin: auto;" class="layout" cellspacing="0"> |
<tr> |
<td rowspan="5" style="background-repeat: repeat-y; background-image: url(img/border-left.png); background-position: right; width: 25px; padding: 0px;"> </td> |
<td colspan="2"> |
<img src="img/ae_checkout.png" alt="Account Executive Checkout Logo" /> |
</td> |
<td rowspan="5" style="background-repeat: repeat-y; background-image: url(img/border-right.png); background-position: right; width: 25px; padding: 0px;"> </td> |
</tr> |
<tr> |
<td colspan="2"> |
<co:Navigator ID="QuickNavigator" runat="server" /> |
</td> |
</tr> |
<tr> |
<td style="vertical-align: text-top;"> |
<asp:PlaceHolder ID="ProjectHolder" runat="server" /> |
</td> |
<td style="vertical-align: text-top; white-space: nowrap;"> |
<telerik:RadPanelBar ID="SalesItems" |
runat="server" |
Width="370px" |
CssClass="invoice"> |
<Items> |
<telerik:RadPanelItem Text="Sales Items"> |
<ItemTemplate> |
<table cellpadding="0" cellspacing="0" style="width: 100%"> |
<tr> |
<td> |
<co:Invoice ID="SalesInvoice" runat="server" AllowRemoval="true" /> |
</td> |
</tr> |
<tr> |
<td style="background-color: #8EA3B9; padding-left: 5px;"> |
<telerik:RadNumericTextBox ID="Discount" |
runat="server" |
Type="Currency" |
Label="Discount: " |
Value="0" |
EnabledStyle-HorizontalAlign="Right" |
/> |
<asp:ImageButton ID="ApplyDiscountButton" |
runat="server" |
ImageUrl="~/img/arrow_refresh.png" |
OnClick="ApplyDiscountButton_Click" /> |
</td> |
</tr> |
<tr> |
<td style="text-align: right; background-color: #8EA3B9;"> |
<asp:Button ID="ClearButton" runat="server" Text="Clear" OnClick="ClearButton_Click"/> |
<asp:Button ID="EstimateButton" runat="server" Text="Create Quote" OnClick="CreateEstimateButton_Click" /> |
<asp:Button ID="BillMeButton" runat="server" Text="Bill Me" OnClick="BillMeButton_Click" /> |
<asp:Button ID="CheckOutButton" runat="server" Text="Pay Now" OnClick="CheckOutButton_Click" /> |
</td> |
</tr> |
</table> |
</ItemTemplate> |
</telerik:RadPanelItem> |
</Items> |
</telerik:RadPanelBar> |
</td> |
</tr> |
<tr> |
<td style="vertical-align: text-top" colspan="2"> |
<telerik:RadDataPager ID="DataPager" |
runat="server" |
PageSize="6" |
PagedControlID="Projects"> |
<Fields> |
<telerik:RadDataPagerButtonField FieldType="FirstPrev" /> |
<telerik:RadDataPagerButtonField FieldType="Numeric" /> |
<telerik:RadDataPagerButtonField FieldType="NextLast" /> |
<telerik:RadDataPagerPageSizeField PageSizeText="Projects per Page: " /> |
<telerik:RadDataPagerGoToPageField CurrentPageText="Page: " TotalPageText="of" SubmitButtonText="Go" /> |
<telerik:RadDataPagerTemplatePageField> |
<PagerTemplate> |
<div style="float: right"> |
<b>Projects |
<asp:Label runat="server" ID="CurrentPageLabel" Text="<%# Container.Owner.StartRowIndex+1%>" /> |
to |
<asp:Label runat="server" ID="TotalPagesLabel" Text="<%# IIf(Container.Owner.StartRowIndex+Container.Owner.PageSize > Container.Owner.TotalRowCount, Container.Owner.TotalRowCount, Container.Owner.StartRowIndex+Container.Owner.PageSize) %>" /> |
of |
<asp:Label runat="server" ID="TotalItemsLabel" Text="<%# Container.Owner.TotalRowCount %>" /> |
<br /> |
</b> |
</div> |
</PagerTemplate> |
</telerik:RadDataPagerTemplatePageField> |
</Fields> |
</telerik:RadDataPager> |
</td> |
</tr> |
</table> |
</div> |
</LayoutTemplate> |
<ItemTemplate> |
<asp:HiddenField ID="ProjectName" runat="server" Value='<%#Eval("ProjectAbbreviation") %>' /> |
<telerik:RadPanelBar ID="ProjectPanelBar" |
runat="server" |
Width="619px" |
CssClass='<%#IIf(Eval("ProjectAbbreviation").ToString().Equals(Account.DefaultProject, StringComparison.CurrentCultureIgnoreCase), "highlightedProject projectHolder", "projectHolder") %>'> |
<Items> |
<telerik:RadPanelItem Text="Project Name" |
runat="server" |
ClickedCssClass="rpOut" |
ExpandedCssClass="rpOut" |
FocusedCssClass="rpOut" |
SelectedCssClass="rpOut"> |
<ItemTemplate> |
<co:Project ID="Project" runat="server" /> |
</ItemTemplate> |
</telerik:RadPanelItem> |
</Items> |
</telerik:RadPanelBar> |
</ItemTemplate> |
<EmptyDataTemplate> |
<span style="width: 619px; text-align: center;"> |
<h1>No projects available for this account.</h1> |
</span> |
</EmptyDataTemplate> |
</telerik:RadListView> |
</telerik:RadAjaxPanel> |
Dim ajaxPanelPanel As HtmlDiv = Find.ById(Of HtmlDiv)("AjaxPanelPanel") |
Assert.IsNotNull(ajaxPanelPanel) |
Dim ajaxPanel As HtmlDiv = Find.ById(Of HtmlDiv)("AjaxPanel") |
Assert.IsNotNull(ajaxPanel) |
'Dim element_ As ArtOfTest.WebAii.ObjectModel.Element = ajaxPanel.Find.ById("Projects") |
'Dim listView As RadListView = element_.As(Of RadListView)() |
Dim listView As RadListView = ajaxPanel.Find.ByAttributes(Of RadListView)("class=RadListView RadListViewFloated RadListView_Default") |