Giter VIP home page Giter VIP logo

swd-recorder's Introduction

SWD Page Recorder

DEPRECATION NOTICE (March 24, 2018)

Sorry bros and sisters, I am not planning to support this project.
Long-long time ago, it was a fun time adding new features and fixing the old bugs... Well, thank you all users and contributers!

Oh, if you might want to check something new, check this out:

sergueik/SWET - Selenum WebDriver Page Test / workflow recorder (successor to SWD recorder)

...

SWD Page Recorder is a .NET application that makes it easy to create new Selenium Webdriver PageObject classes. You can use it to test webdriver locators (html id, css selectors, xpath etc.) using Selenium Webdriver on various browsers and using various modes (Internal Driver and Remote Hub connection).

SWD Starter C# -= SWD Page Recorder =- SWD Starter Java

⚓ Articles in English:

⚓ Articles in Russian:

📹 Videos

Why SWD Page Recorder?

We both know: you awesome application is the best for solving the business problems in your domain.

However, the developers may not have time for writing a comprehensive unit and integration testing suites… On the other hand, the QA Team may not trust the unit tests written by developers. There are so many reasons why the teams across the world choose the User Acceptance / User Interface testing approach.

And you will realize that the code produced by such tools as Selenium IDE and Selenium Builder is good in the beginning… However, the test suites created with Record & Playback tools will require so much maintenance time, so you would put more effort on fixing the tests rather than running them. That is the hidden cost of the Record & Playback approach.

At this point, you will discover many teams uses PageObjects in order to reduce the maintenance time and boosts the test case creation. Your will make the test code more stable and clean.

The only one thing... You still need to spend a lot of time creating your PageObject classes manually.

You should not.

Let SWD Page Recorder do this for your. SWD Page Recorder enables you to pick the required elements from the Web application UI and generate the code for the new PageObject class.

SWD Page Recorder

Contributors

  • @sergueik
  • @dzharii

Bitdeli Badge

swd-recorder's People

Contributors

dzharii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swd-recorder's Issues

Session end or window close ,after authentication windows opens(only on IE)

Steps to reproduce:
1.Start IE browser -->browser will launch -->click on refresh in the tool-->page loaded
2.enter url as http://google.com -->security authentication window will open to enter user name and password--> enter and click on--> Click on Refresh button in the tool--->nothing will get loaded.

in organization,due to security issues ,when ever we open google or some other sites,it will ask us to pass credentials then it allows to access based on the correct user creds.

By using SWD, default browser launched window(IE driver window) will be loaded in the tool but once you enter url as some generic site "Google.com" (where it doesn't allow you to access) the browser window failed to carry cookies or session out or window close exception.

please,can you assist how we can resolve this issue?

Note: This behavior is happening only on IE.

Usability short comings on Page Objects Section

Usability short comings in “Page Object” section of SWD Page Recorder

  1. We can not copy one page objects onto other pages, i.e. an Item of .pox file can not be copied to another .pox file.
    Example: My application has A, B etc.. pages. A page has objects Start Date(id: A_startDate) and End Date(id: A_EndDate), which B also has like Start Date(id: B_startDate) and End Date(id: B_EndDate). So, I would like to copy the objects from A to B, in this case I just need to change the ids, rest things can be the same.
    See attached word file...

  2. The object on which we are currently working on Locators tab, are not highlighted in Page Objects tab, due to which user have to read the objects list to see on which object we are currently making the changes.
    See attached word file...

  3. We need to double click on an Object to bring it in “Locators Tab”, It causes lot of confusion while Removing and creating copy of elements
    See attached word file...

  4. We can not select multiple objects to perform,” Remove”, “Copy” actions
    See attached word file...

  5. Also if possible, It would be great if we can edit the “xpath” and view element hierarchy on the [ctrl + right click] popup itself
    See attached word file...

  6. Please Enable keyboard shortcut keys to perform actions like (Save – ctrl + s) and also put the Copy, Remove actions on a popup which displays when we select object and right click on it.
    See attached word file...

  7. Also it would be great, if instead of showing a dropdown of created pages,
    we can have them in tree like view like as shown below
    See attached word file...

This will improve the usability and speed in copying and pasting the same kind of Objects from one page to other.

See attached word file...
PageObjectTab-ShortComings.docx

Error on build

While building the project getting error as \swd-recorder-master\SwdPageRecorder\SwdPageRecorder.sln.metaproj : error MSB4126: The specified solution configuration "Debug|MCD" is invalid.

Is it possible to add option to take current screenshot?

Selenium allows taking full page screenshot. It will be nice if SWD can give this option in the GUI.
I tried to execute following code in WebDriver Playground and it always throws exception.

driver.GetScreenshot().SaveAsFile("c:/test.png", ImageFormat.Png)
2015-04-12 17:32:33.4139 ERROR 'ImageFormat' is undefined Microsoft.ClearScript.ScriptEngineException: 'ImageFormat' is undefined
   at Microsoft.ClearScript.ScriptEngine.ThrowScriptError(IScriptEngineException scriptError)
   at Microsoft.ClearScript.Windows.WindowsScriptEngine.ThrowScriptError(Exception exception)
   at Microsoft.ClearScript.Windows.WindowsScriptEngine.<>c__DisplayClass14.<ScriptInvoke>b__13()
   at Microsoft.ClearScript.ScriptEngine.ScriptInvoke(Action action)
   …
   at Microsoft.ClearScript.ScriptEngine.Evaluate(String code)
   at SwdPageRecorder.UI.PlayGroundPresenter.RunScript(String code)
   at SwdPageRecorder.UI.PlayGroundView.btnRunScript_Click(Object sender, EventArgs e)
   …
   at Microsoft.ClearScript.ScriptEngine.Evaluate(String documentName, String code)
   at Microsoft.ClearScript.ScriptEngine.Evaluate(String code)
   at SwdPageRecorder.UI.PlayGroundPresenter.RunScript(String code)
   at SwdPageRecorder.UI.PlayGroundView.btnRunScript_Click(Object sender, EventArgs e)
  …

Chrome: ERROR unknown error: failed to close UI debuggers

Google Chrome only:
When I am using WebElement Explorer together with Debugger toolbar, the following exception occurs and WEE cannot be started again

2013-09-07 21:39:43.4139 ERROR unknown error: failed to close UI debuggers
(Session info: chrome=29.0.1547.66)
(Driver info: chromedriver=2.3,platform=Windows NT 6.1 SP1 x86_64)

Maximize browser

It would be nice to have my browser maximized just after i've started it via SWDPR

Enhancements to In-Broswer Element Explorer

I would like to suggest following enhancements to In-Browser Element Explorer that is shown when user presses Ctrl + Right click

  1. Display value of Id, Name attributes (if available for the element)
  2. Along with XPathLocator, also show/suggest CSS Locator
  3. When user adds an element, show success message or close the popup

Best,
Unmesh

Win32: System.TypeLoadException

SWD Page recoder uses IlMerge in order to create a single executable file.

The solutions for issue is described here:

http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

and here:
http://stackoverflow.com/questions/17222369/how-to-diagnose-system-typeloadexception-error

Приложение: SwdPageRecorder.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: System.TypeLoadException
Стек:
в System.ModuleHandle.ResolveType(System.Reflection.RuntimeModule, Int32, IntPtr_, Int32, IntPtr_, Int32, System.Runtime.CompilerServices.ObjectHandleOnStack)
в System.ModuleHandle.ResolveTypeHandleInternal(System.Reflection.RuntimeModule, Int32, System.RuntimeTypeHandle[], System.RuntimeTypeHandle[])
в System.Reflection.RuntimeModule.ResolveType(Int32, System.Type[], System.Type[])
в System.Reflection.CustomAttribute.FilterCustomAttributeRecord(System.Reflection.CustomAttributeRecord, System.Reflection.MetadataImport, System.Reflection.Assembly ByRef, System.Reflection.RuntimeModule, System.Reflection.MetadataToken, System.RuntimeType, Boolean, System.Object[], System.Collections.IList, System.RuntimeType ByRef, System.IRuntimeMethodInfo ByRef, Boolean ByRef, Boolean ByRef)
в System.Reflection.CustomAttribute.GetCustomAttributes(System.Reflection.RuntimeModule, Int32, Int32, System.RuntimeType, Boolean, System.Collections.IList, Boolean)
в System.Reflection.CustomAttribute.GetCustomAttributes(System.Reflection.RuntimeAssembly, System.RuntimeType)
в System.Reflection.RuntimeAssembly.GetCustomAttributes(System.Type, Boolean)
в System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, Boolean)
в System.Windows.Forms.NativeWindow.AdjustWndProcFlagsFromMetadata(Int32)
в System.Windows.Forms.NativeWindow.get_WndProcFlags()
в System.Windows.Forms.NativeWindow.get_WndProcShouldBeDebuggable()
в System.Windows.Forms.NativeWindow.AssignHandle(IntPtr, Boolean)
в System.Windows.Forms.NativeWindow.AssignHandle(IntPtr)
в System.Windows.Forms.NativeWindow+WindowClass.Callback(IntPtr, Int32, IntPtr, IntPtr)
в System.Windows.Forms.UnsafeNativeMethods.IntCreateWindowEx(Int32, System.String, System.String, Int32, Int32, Int32, Int32, Int32, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Object)
в System.Windows.Forms.UnsafeNativeMethods.CreateWindowEx(Int32, System.String, System.String, Int32, Int32, Int32, Int32, Int32, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Object)
в System.Windows.Forms.NativeWindow.CreateHandle(System.Windows.Forms.CreateParams)
в System.Windows.Forms.Control.CreateHandle()
в System.Windows.Forms.Application+MarshalingControl..ctor()
в System.Windows.Forms.Application+ThreadContext.get_MarshalingControl()
в System.Windows.Forms.WindowsFormsSynchronizationContext..ctor()
в System.Windows.Forms.WindowsFormsSynchronizationContext.InstallIfNeeded()
в System.Windows.Forms.Control..ctor(Boolean)
в System.Windows.Forms.ScrollableControl..ctor()
в System.Windows.Forms.ContainerControl..ctor()
в System.Windows.Forms.Form..ctor()
в SwdPageRecorder.UI.SwdMainView..ctor()
в SwdPageRecorder.UI.SWDRecorder_Program.Main()

Unhandled exception is thrown while using Chrome

I'm running SWD Page Recorder on Windows 7 and Chromedriver.exe is copied in C:\ChromeDriver\ (added to PATH)

When I select Chrome from the Browser list on Browser Settings tab and click on Start button, I see following exception

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Reflection.CustomAttributeFormatException: 'NullValueHandling' property specified was not found. ---> System.Reflection.CustomAttributeFormatException: 'NullValueHandling' property specified was not found.
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   --- End of inner exception stack trace ---
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimePropertyInfo property, RuntimeType caType)
   at System.Reflection.RuntimePropertyInfo.GetCustomAttributes(Type attributeType, Boolean inherit)
   at System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)
   at System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
   at Newtonsoft.Json.Utilities.WebDriver307921.ReflectionUtils.GetAttributes[T](ICustomAttributeProvider attributeProvider, Boolean inherit) in :line 0
   at Newtonsoft.Json.Utilities.WebDriver307921.ReflectionUtils.GetAttribute[T](ICustomAttributeProvider attributeProvider, Boolean inherit) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonTypeReflector.GetAttribute[T](MemberInfo memberInfo) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonTypeReflector.GetAttribute[T](ICustomAttributeProvider attributeProvider) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.SetPropertySettingsFromAttributes(WebDriver307921.JsonProperty property, ICustomAttributeProvider attributeProvider, String name, Type declaringType, WebDriver307921.MemberSerialization memberSerialization, Boolean& allowNonPublicAccess) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.CreateProperty(MemberInfo member, WebDriver307921.MemberSerialization memberSerialization) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.CreateProperties(Type type, WebDriver307921.MemberSerialization memberSerialization) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.CreateObjectContract(Type objectType) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.CreateContract(Type objectType) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.DefaultContractResolver.ResolveContract(Type type) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.GetContractSafe(Object value) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.Serialize(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonSerializer.SerializeInternal(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonSerializer.Serialize(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.Formatting formatting, WebDriver307921.JsonSerializerSettings settings) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.Formatting formatting, WebDriver307921.JsonConverter[] converters) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.JsonConverter[] converters) in :line 0
   at OpenQA.Selenium.Remote.DesiredCapabilitiesJsonConverter.WriteJson(WebDriver307921.JsonWriter writer, Object value, WebDriver307921.JsonSerializer serializer) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.SerializeConvertable(WebDriver307921.JsonWriter writer, WebDriver307921.JsonConverter converter, Object value, WebDriver307921.JsonContract contract, WebDriver307921.JsonContainerContract collectionContract, WebDriver307921.JsonProperty containerProperty) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.SerializeValue(WebDriver307921.JsonWriter writer, Object value, WebDriver307921.JsonContract valueContract, WebDriver307921.JsonProperty member, WebDriver307921.JsonContainerContract containerContract, WebDriver307921.JsonProperty containerProperty) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.SerializeDictionary(WebDriver307921.JsonWriter writer, WebDriver307921.IWrappedDictionary values, WebDriver307921.JsonDictionaryContract contract, WebDriver307921.JsonProperty member, WebDriver307921.JsonContainerContract collectionContract, WebDriver307921.JsonProperty containerProperty) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.SerializeValue(WebDriver307921.JsonWriter writer, Object value, WebDriver307921.JsonContract valueContract, WebDriver307921.JsonProperty member, WebDriver307921.JsonContainerContract containerContract, WebDriver307921.JsonProperty containerProperty) in :line 0
   at Newtonsoft.Json.Serialization.WebDriver307921.JsonSerializerInternalWriter.Serialize(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonSerializer.SerializeInternal(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonSerializer.Serialize(WebDriver307921.JsonWriter jsonWriter, Object value) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.Formatting formatting, WebDriver307921.JsonSerializerSettings settings) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.Formatting formatting, WebDriver307921.JsonConverter[] converters) in :line 0
   at Newtonsoft.Json.WebDriver307921.JsonConvert.SerializeObject(Object value, WebDriver307921.JsonConverter[] converters) in :line 0
   at OpenQA.Selenium.Remote.Command.get_ParametersAsJsonString() in :line 0
   at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) in :line 0
   at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) in :line 0
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in :line 0
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) in :line 0
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) in :line 0
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout) in :line 0
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options) in :line 0
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor() in :line 0
   at SwdPageRecorder.WebDriver.SwdBrowserUtils.WebDriverUtils.StartEmbededWebDriver(WebDriverOptions browserOptions) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.WebDriver\SwdBrowserUtils\WebDriverUtils.cs:line 97
   at SwdPageRecorder.WebDriver.SwdBrowserUtils.WebDriverUtils.Initialize(WebDriverOptions browserOptions, Boolean& isRemote) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.WebDriver\SwdBrowserUtils\WebDriverUtils.cs:line 35
   at SwdPageRecorder.WebDriver.SwdBrowser.Initialize(WebDriverOptions browserOptions) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.WebDriver\SwdBrowser.cs:line 63
   at SwdPageRecorder.UI.BrowserSettingsTabPresenter.StartDriver(WebDriverOptions browserOptions) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.UI\SwdMain\Tabs\Presenters\BrowserSettingsTabPresenter.cs:line 80
   at SwdPageRecorder.UI.BrowserSettingsTabPresenter.StartNewBrowser(WebDriverOptions browserOptions) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.UI\SwdMain\Tabs\Presenters\BrowserSettingsTabPresenter.cs:line 65
   at SwdPageRecorder.UI.BrowserSettingsTabView.btnStartWebDriver_Click(Object sender, EventArgs e) in d:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.UI\SwdMain\Tabs\BrowserSettingsTabView.cs:line 51
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1008 (RTMGDR.030319-1000)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
SwdPageRecorder
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/unmesh.gundecha/Downloads/SwdPageRecorder_Latest/SwdPageRecorder_Latest/SwdPageRecorder.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1002 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1001 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1001 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1015 (RTMGDR.030319-1000)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1015 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.ComponentModel.DataAnnotations
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ComponentModel.DataAnnotations/v4.0_4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll
----------------------------------------
System.Runtime.Serialization
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.Xml.Linq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.237 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

New version of SWD does not support IE 11

Tried to run internet explorer driver for IE 11 32 bit. It opens up the browser but when on locators tab and click on Start button it shows below error:

Unable to get browser
Error type: OpenQA.Selenium.NoSuchWindowException

Connect to already running Browser

  1. Is it possible to connect to an already running firefox browser started by WebDriver? I am developing my tests in Java and would like to have the test drive the application to a particular page and then have SWD Recorder take over so I can generate the page object for the current page.
  2. What is the "Use remote hub connection" option on the first page of the application for? I haven't seen in mentioned anywhere.

Thanks
Andrew

cannot get absolute xpath like firepath or firebug

Dear authors,

This is a great application for web automation, but I am experiencing a problem during my work with it. The swd-recorder captures the xpath which is something like (in the output pox file):
id("svep_19_i0_508")/div[1]/img[1]

However, the id of "svep_19_i0_508" always changes because of the id is generated dynamically by the Web server, so when I re-open the page, I always fail to find the page element recorded.

What I expect is something similar with :"html/body/section/section/x1-workspaces/div/div[2]/x1-tabset/ul/li[7]/a

A work-round is to use the firepath to get the absolute xpath, so I hope the swd-recorder can extract the absolute xpath of page elements, probably it can re-use the interface of firepath or firebug?

Very appreciate with your help.

Browser URL field is disabled

Not able to enter the URL in the Browser field as its disabled. Why its disabled ? I had downloaded the latest release [Build#2015.04.14]. Any configuration issues ?

Can any one suggest workaround or solution for this ?

Cannot Start WebElement Explorer when it was stopped

Given the WebElement Explorer is started
When an error on the Page occurs
And WebElement Explorer stops
Then I am not able to start it again

I should be able to start and stop WebElement Explorer anytime. The errors should be handled properly

Failed to start up socket due to 'OpenQA.Selenium.WebDriverException'

@dzharii
I am very new to Test automation with Java programming and I wanted to make my work more simple by creating page objects with your tool. But I was unable to run this program from my local machine due to access permissions and so I tried to run it from a shared folder and I got the below message.

error

Kindly let me know if I am missing something or if there are any pre-requisites that I should consider before running the tool.

Ability to change action for adding elements

My application is using context menu, so when I'm using Ctrl-Right Click application defined context menu is shown instead of SWD's add element dialog.
Please add a possibility to change action for adding elements in browser.

Not able to switch the control to next window

I have to login to site to get the page for which i want all the locators
but when i am login to application only in the first page control is there after login sessions opens in new window. and control is not able to switch to new window

How solve this issue, Please help me

Playground: Fix

D:\projects_current\swd-recorder\SwdPageRecorder\SwdPageRecorder.UI\SwdMain\Tabs\Presenters\PlayGroundPresenter.cs

TODO: FIX message --> Exception has been thrown by the target of invocation
image

Project cannot find the drivers..

Hello, thanks for your work on this project, I am interested in it.

I downloaded the project compiled and ran it, it seems to be looking for the drivers. My question is where do I put the drivers? In the project of anywhere on the system (and adding to the Path environment statement?)

no way to quick close "Add element" dialog

It would be more comfy for user to have an oppotunity to close the pop-up on his own.
For instance by 'ESC' button.

Possibly it might be even better if the dialog will close itself by clicking 'Add element' button

ERROR Object reference not set to an instance of an object.

When I record locators for a certain UI element with SWD Recorder (and Firefox), I see the following error in the log (and further recording becomes impossible until application restart):

2013-09-17 17:46:17.8434 INFO JSON:
[
{ "Key": "type", "Value": "text"},{ "Key": "class", "Value": "text"},{ "Key": "style", "Value": "width: 50px;"},{ "Key": "id", "Value": "nb_char_size"},{ "Key": "onchange", "Value": "maskChange(event);"},{ "Key": "onkeypress", "Value": "return maskKeyPress(event)"},{ "Key": "value", "Value": ""},{ "Key": "maxlength", "Value": "4"},{ "Key": "name", "Value": "maxOutputSize"},]

2013-09-17 17:46:48.6834 ERROR Object reference not set to an instance of an object.
2013-09-17 17:46:49.4714 INFO VisualSearch_UpdateSearchResult: Finished
...
2013-09-17 17:54:32.6124 INFO JSON:
[
{ "Key": "type", "Value": "text"},{ "Key": "class", "Value": "text "},{ "Key": "style", "Value": "width: 50px;"},{ "Key": "id", "Value": "nb_char_size"},{ "Key": "onchange", "Value": "maskChange(event);"},{ "Key": "onkeypress", "Value": "return maskKeyPress(event)"},{ "Key": "value", "Value": ""},{ "Key": "maxlength", "Value": "4"},{ "Key": "name", "Value": "maxOutputSize"},]

2013-09-17 17:54:40.7034 ERROR Object reference not set to an instance of an object.
2013-09-17 17:54:41.4814 INFO VisualSearch_UpdateSearchResult: Finished

In the In-Browser Web Element Explorer I see:
input[@type='submit' and @value='Save']

The html for this element is simple:
<input class="button" type="submit" value="Save">

Serialization error?

Hello. At the very start of the program, when I click "save" button, or just choose an alement on the right, I get an error: "An error had occured during saving the page object. File: .pox. Error: there was an error reflecting type 'SwdPageRecorder.Webdriver.SwdPageObject'. What am I doing wrong? :)

UPD: Changed "Dictionary" to "SerializableDictionary" and it worked.

Can't add an element in swd

Привет Дим!) Hi dear dev. I found a bug in 2018. When i trying to add element, then it doesn't work. I don't know why. I updated chromedriver to latest version. So, mybe you can check it.

JSON Error (Error converting value) on JSF pages

This issue was reported by Vlad via Email.
On web applications built with JSF framework standard JavaScript side JSON object is changed when serializing arrays.

As results, the following error occurs in SWD Page Recorder:
2013-09-02 13:22:05.0123 ERROR Error converting value "[{"Key": "type", "Value": "text"}, {"Key": "class", "Value": "long-input  "}, {"Key": "maxlength", "Value": "64"}, {"Key": "value", "Value": ""}, {"Key": "name", "Value": "name"}, {"Key": "id", "Value": "name"}]" to type 'System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.String]]'. Path '', line 1, position 261.
2013-09-02 13:22:05.7904 INFO VisualSearch_UpdateSearchResult: Finished

Looks like standard JSON object behavior was changed by JSF.
The following experiment shows different behavior for same calls in same browser for default and JSF pages:

http://www.toysrus.co.uk/index.jsf

JSON.stringify([{Key : "1", Value : "s}dsd" + '"' + "z"}], null);
""[{\"Key\": \"1\", \"Value\": \"s}dsd\\\"z\"}]""

about:blank

JSON.stringify([{Key : "1", Value : "s}dsd" + '"' + "z"}], null);
"[{"Key":"1","Value":"s}dsd\"z"}]"

The problem was fixed by generating json string without using JSON object.

SWD-Recorder does not recognize Firefox ESR

Hello,
I have SWD Recorder running on two laptops, one using the regular release of firefox, and another one with the ESR (https://www.mozilla.org/en-US/firefox/organizations/faq/) release of Firefox.
The SWD with ESR fails when clicking on the "Start" button with the error message that it could not determine the version of FF from the registry.

Since FF 31, the ESR version has used a different Registry to the regular FF. I think SWD should also look in that registry for FF.
https://bugzilla.mozilla.org/show_bug.cgi?id=1079229

Can I get all the locators?

Hello. Is there a way to get all locators of element, or at least all xpath locators? I've found an "AlternativeFindBys" array, but it seems it is not what i need. I want the list of the paths, which we get on "Gen Locators" button. Is it stored somewhere in the Page Object?

Need information on Keywords to use in Webdriver Playground

Hi dzharii,

First I like to thank you for this wonderful initiative for reading the Page Objects for web applications which is a great help to Test Automation folks like me.

I have tried to Capture the elements and added it to the repository. When on trying the keywords or Actions like Click(), Clear(), SendKeys(""), it works fine and have no issues with it.

But there is a purpose on checking the attribute value of an element in selenium, which I want to try from the SWD page Recorder.

If So, can you please share the list of keywords or actions included to perform in SWD page recorder for Webdriver playground.

Thanks!!!!

Javascript error: IEDriver on Protect mode OFF

HI,

Due to security reasons and no admin rights, i tried to handle IE protect mode through script but which was failed to run using the tool.

After i handled IE protected mode through the code , tool giving java script error when i try to perform Ctrl+Right click on any element.

The below changes i did to run on IE,
var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.InitialBrowserUrl = "https://google.com";
driver= new InternetExplorerDriver(options);

after this change, i was able to invoke internet explorer but not able to locate any element,and saw the above explained error message.

Note: Working fine on firefox.
iejscripterror

Thanks In Advance.

Unable to Identify Play Video button in Iframe

Have create a small video explaining Unable to Identify Play Video button in Iframe

Below website i am testing, i am using windows 10 and Chrome version 61

http://utubehits.com/
uid :- [email protected]
pwd :- Tapan@321

https://www.youtube.com/watch?v=KT0hSNkfCD8

Below is code i wrote

package basic.basic;

import java.util.Iterator;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**

  • Unit test for simple App.
    */
    public class AppTest
    extends TestCase
    {
    public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver","C://Sprints//chromedriver_win32//chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://utubehits.com/");
    driver.findElement(By.name("login")).sendKeys("[email protected]");
    driver.findElement(By.name("pass")).sendKeys("Tapan@321");
    driver.findElement(By.name("connect")).click();
    driver.findElement(By.linkText("YouTube Views")).click();
    driver.findElement(By.linkText("Watch Video")).click();
    System.out.println(driver.getTitle());
    driver.switchTo().frame(0).switchTo().frame(0); //Code to switch to iframe
    driver.findElement(By.id("player_uid_938008203_1")).click(); //code to click Play button at Youtube

}

}

Binary file path for any browser (or customized path)

Hello,

It's just my thought and i have implemented same thing in the page recorder to locate customized path of the browser.

  1. i have added two controls (1.check box and edit filed)
    when user selects browser to start, if selects check box and entering the binary path then tool will tries to identifying the customized path other wise it will take default installation location.

  2. Added few line of code in webdriverUtils.cs under "StartEmbededWebDriver" method
    private static IWebDriver StartEmbededWebDriver(WebDriverOptions browserOptions)
    {
    switch (browserOptions.BrowserName)
    {

              case WebDriverOptions.browser_Firefox:
    

    if (browserOptions.BinaryURL != "" && browserOptions.IsBinary)
    {
    FirefoxBinary ffBinary = new FirefoxBinary(browserOptions.BinaryURL);
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    return new FirefoxDriver(ffBinary, firefoxProfile);
    }else {
    return new FirefoxDriver();
    }

Note: i hope we can use same logic for other browsers as well.

  1. i have added the below 2 controls as,

customizedpath

if i am not correct ,please excuse me and tune for better solution.

Bin\webdriver.xpi is not found

Hi,

Am getting the below error whenever i try to launch Firefox browser,

An exception of type 'OpenQA.Selenium.WebDriverException' occurred in SwdPageRecorder.UI.exe but was not handled in user code
Additional information: Cannot find a file named 'C:\SWDPageRecorder\Bin\webdriver.xpi' or an embedded resource with the id 'WebDriver.FirefoxExt.zip'.

Can you suggest me to overcome from this problem?

Regards,
Ravi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.