Reviewed book on Selenium Design Patterns and Best Practices. You can find it here https://www.packtpub.com/web-development/selenium-design-patterns-and-best-practices
Tuesday, October 7, 2014
Tuesday, September 30, 2014
The service on Local Computer started and then stopped
I was seeing the below error on a windows service that I had created.
---------------------------
Services
---------------------------
The xxx service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.
---------------------------
OK
---------------------------
The easiest way to debug this error was to launch the debugger from the service in the OnStart method like below:
protected override void OnStart(string[] args)
{
System.Diagnostics.Debugger.Launch();
// Rest of your code
}
---------------------------
Services
---------------------------
The xxx service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.
---------------------------
OK
---------------------------
The easiest way to debug this error was to launch the debugger from the service in the OnStart method like below:
protected override void OnStart(string[] args)
{
System.Diagnostics.Debugger.Launch();
// Rest of your code
}
Tuesday, August 5, 2014
Fiddler - Replay altered requests multiple times
If you want to replay a certain request in Fiddler, you can select it and press R
If you want to replay a request multiple number of times , you can select the request, press Shift + R and specify the count.
However, if you want to alter the request every time you replay it, you can do that by adding a custom rule in fiddler.
Go to Rules->Customize Rules. In the method OnBeforeRequest(oSession: Session), add the below:
if(oSession.uriContains("yourUrl"))
{
oSession.utilReplaceInRequest('searchText',Guid.NewGuid());
}
Now press Shift + R on your request and replay the altered request multiple times. Sweet!
Saturday, July 12, 2014
Android - SSL errors even after installing custom CA certificate
I followed these steps to install my custom CA cert on an Android device
However, the certificate was still not trusted and I was seeing SSL errors on trying to reach an SSL endpoint using the CA cert.
The issue turned out to be that the Date and time was not set correctly on the device. I fixed the Date and time and the SSL errors went away. Yay!
- adb push mycert.cer /sdcard/
- Go to Settings->Security->Credential storage->Install from device storage
- Select the certificate and install
- Confirm that the certificate is installed in Settings->Security->Trusted credentials->User
However, the certificate was still not trusted and I was seeing SSL errors on trying to reach an SSL endpoint using the CA cert.
The issue turned out to be that the Date and time was not set correctly on the device. I fixed the Date and time and the SSL errors went away. Yay!
Tuesday, June 10, 2014
Selenium WebDriver Practical Guide
Reviewed a book on Selenium WebDriver Practical Guide. You
can find it here http://www.packtpub.com/selenium-webdriver-practical-guide/book
Microsoft UI Automation Framework
Microsoft UI
Automation is the new accessibility framework for Microsoft Windows used to
provide programmatic access to UI elements on the desktop. It can be used to
automate Windows applications, Web applications and Windows Store apps
More info can be found here http://msdn.microsoft.com/en-us/library/ms747327(v=vs.110).aspx
To inspect the automation element properties,
you can use the accessibility tools that ship with Windows SDK http://blogs.msdn.com/b/seealso/archive/2010/07/22/where-did-the-accessibility-tools-go.aspxAdd a reference to UIAutomationClient.dll and UIAutomationTypes.dll and include the namespace
using System.Windows.Automation;
Desktop or Root element
The root element is desktop which can be obtained by
AutomationElement desktop = AutomationElement.RootElement;
Finding the Application under Test
The application under test can be found by looking for the
children of desktopAutomationElement applicationUnderTest = desktop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "ApplicationName"));
Finding Child elements of Application under Test
AutomationElement child = applicationUnderTest.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "ChildName"));
Finding Descendants of Application under Test
AutomationElement child = applicationUnderTest.FindFirst(TreeScope. Descendants, new PropertyCondition(AutomationElement.NameProperty, "DescendentName"));
Various ways of finding an Element
AutomationElement.NamePropertyAutomationElement.AutomationIdProperty
AutomationElement.ClassNameProperty
AutomationElement.FromHandle(IntPtr hwnd)
AutomationElement.ControlTypeProperty
Etc.
Entering Text in an Element
AutomationElement textbox = applicationUnderTest.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty,
"TextboxName"));object textboxValuePattern = null;
if (textbox.TryGetCurrentPattern(ValuePattern.Pattern, out textboxValuePattern))
{
((ValuePattern) textboxValuePattern.SetValue("Desired text");
}
Clicking a button
AutomationElement button = applicationUnderTest.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty,
"ButtonName"));object t buttonPattern = null;
if (button.TryGetCurrentPattern(InvokePattern.Pattern, out buttonPattern))
{
((InvokePattern) buttonPattern.Invoke();
}
Finding the Application under Test using Pointer to a Handle
Sometimes it’s difficult to find an application just by
looking at the children of desktop. In these case, it can be found using
pointer to its handleFirst, create a class which uses Windows USER (User32.dll) component of Windows Operating System
public static class Win32
{
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(String sClassName, String sAppName);
}
Then get a handle of the application window. You will have to include the namespace
using interop.UIAutomationCore;
IntPtr handle = Win32.FindWindow("Windows.UI.Core.CoreWindow", " ApplicationName ");
Now, you can find the application under test
AutomationElement applicationUnderTest = AutomationElement.FromHandle(handle);Tuesday, August 6, 2013
Subscribe to:
Posts (Atom)




