Controlling two chrome instances through Cucumber scenario, driven by Watir Webdriver - cucumber

I am working on a web application, where I receive a phone call, which is initiated by another web application. To achieve this, I need to open two chrome browsers having two different URLs. I am using cucumber to write scenario and watir webdriver to drive the script. I have implemented Page Object Model as a part of framework. I tried making some changes to support files - i.e., hook.rb, env.rb and driver.rb. But it's not working out. Is there a way to achieve this?

Related

Automating browser from terminal

Is there a way to automate a server so that it can open browser at a specific time and input a given email in a form then submit it.
Yes, It can be done by using headless browsers as suggested by #TNU, I have done it using Phantom Js, Now there are many ways you can do this.
Just write a javascript in a file and schedule the job using cron from terminal.
Or you can use casperjs another library written on top of phantom Js.
Or you can use Ghost driver for connecting to phantom headless browser to execute and schedule the scripts.
Yes, you could use headless browsers, which don't have user interfaces and can be controlled programmatically. Check this list for a list of Headless Browsers

mocha testing with later DOM element interaction

In my unit tests I am calling an API whose response is a webpage with buttons and textboxes. Is there a way to simulate click events or keyboard event with the webpage?
The way to go for Browser testing is using a headless browser, like PhantomJS http://phantomjs.org/headless-testing.html
There are instructions available for setting up tests with various test frameworks.
Headless Browsers are similar to "real" Browsers but meant for programmatically controlling them.

Selenium WebDriver Automation script for application Developed using NW.js Technology

Iam trying to Automate my application which is a standalone application build using NW.JS technologies. and based on chromium embedded framework
NW.JS is a desktop application with web technologies implementation.
The Application to be tested is actually embedded inside the Web Took Kit and looks like a normal window application.
It does not make use any of the traditional browsers(IE/Firefox/Chrome/Safari)
I automated the basic login functionality of my application using selenium web driver and python script and when i run it, it invokes my application but unable to identify the objects in the App.
I tried with other testing tools, like
UFT
TestComplete
White
Ranorex
WinTask
All of these tools are invoking my application, but unable to identify the objects inside the App like login link etc.
when i use object spy,it always highlights the main window only and does not identifies the objects inside the application
My developer was saying that the app uses web view tag?
developer has given us the Chrome Dev tools, using which we can inspect the objects properties, but despite this i still see errors when i try to run my automation script developed in selenium python script
Not sure which testing framework and test automation tools will match my requirements
Any one can please guide me, Iam struggling with the Test Automation tools to make it identify the objects inside the application
The Application is built using CSS3.0,HTML5.0,JavaScript,C++ and node.js Technologies
WebDriver is extended by several broweser drivers which selenium supports including 3rd party browser drivers... Find your browser driver in the link http://www.seleniumhq.org/download/ . and you should include that in your project otherwise it tries to trigger firefox driver which is inbuilt. If you dont find your browser driver type means selenium webdriver is not the one for you..... You should try some other automation tools

Can a Chrome extension launch new Chrome windows under different user profiles?

Is there an API for a Chrome extension to launch and control new Chrome windows under different user profiles?
My understanding is that while an extension may be run under multiple user profiles simultaneously, these instances are isolated; they cannot communicate directly and an extension in one profile cannot access the windows/tabs/processes/etc of another profile. Is this the case?
It seems like the best way to launch and control Chrome windows under multiple profiles is to use an approach based on the Remote Debugger API such as the ChromeDriver project.
For context, I'm interested in writing a tool to manage and launch predefined "bundles" of multiple Chrome windows, each with different URLs and screen positions, and each under a different profiles. The attached screenshot shows an example desired state: three browsers, each in a separate profile, each at a different URL, with different devtools states, organized in a specific screen layout. It is conceptually similar to tmuxinator.
If I wanted to provide a Chrome-based UI for designing and managing these presaved layouts, it seems that I would need to provide a native shim that invokes new Chromes via chromedriver, and communicate with them via native messaging. Is there a more direct API that I am missing?
It seems that the proposed Profile Extension API would do exactly what I'm interested in, but I don't see any discussion on the apps-dev#chromium.org list.
If chrome allowed this it would be a huge security hole.
Chrome extensions are installed per user account so they shouldnt be able to see anything from other accounts.

Do I need to create both an extension & packaged app if I want chrome.socket and Context Menus?

I am developing a chrome extension/app that requires
communicate with Intranet services in UDP binary protocol using chrome.socket APIs
need to extract DOM content from non-app web pages. This could be done using bookmarklet, Browser Actions, page actions, or chrome context menus.
There are two chrome.contextMenus APIs
http://developer.chrome.com/apps/contextMenus.html
http://developer.chrome.com/extensions/contextMenus.html
One for Packaged App, another for Extensions. The former only insert contextMenus to Packages Apps, not normal web pages.
If I need both chrome.socket & invoking from normal webpage capability, do I need to create both an extension as well as an app? That would be very confusing to end users.
Yes, you need both the app and the extension. Apps are intentionally devoid of APIs that modify web pages. That's where extensions come in.
I ran into the same problem and had to make two separate apps for exactly the same reasons. (JSTorrent contextmenu extension && JSTorrent).
I believe there are ways to trigger the install dialog from one to the other, but I have not tried to do this yet. If somebody had examples for how to do this, that would be great to add here!
Consider using <webview> in an app. You'll be able to display web content there, and you can more easily communicate between the app and the content. It will result in a single installable item.

Resources