0

screenshotThe scenario is that I am trying to fire sendkeys into a modal dialog box, but webdriver is unable to switch focus onto dialog box. I've tried variety of wait conditions and switch conditions without being successful

Here is the HTML code

New

            <div class="row">
                <ul class="nav nav-tabs">
                    <li role="presentation" class="active"><a data-toggle="tab" href="#ModalAddCampaignsSearchTab">Search</a></li>
                    <li role="presentation"><a data-toggle="tab" href="#ModalAddCampaignsToAddTab">New ({{DealerFactory.Campaign.NumberOfCampaignsToAdd()}})</a></li>
                </ul>
                <div class="tab-content">
                    <div id="ModalAddCampaignsSearchTab" class="tab-pane fade  in active">
                        <br/>
                        <div class="col-lg-12">
                            <label for="Select_A_Campaign">Select A Campaign</label>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">
                                        <i class="fa fa-search" id="icoSearch"></i>
                                        <i class="fa fa-spinner fa-pulse" id="icoSearching" style="display: none;"></i>
                                    </div>
                                    <input class="form-control" id="txtCampaignSearch" name="txtCampaignSearch" ng-change="findDealersToAdd()" ng-model="DealerFactory.Campaign.searchCampaigns.searchTerm" placeholder="Search" type="text" value="" />
                                </div>
                            </div>

                            <div id="divCampaignSearchModalResults" class="well"  ng-show="DealerFactory.Campaign.searchCampaigns.campaigns.length>0" >
                                <div class="row">
                                    <div class="col-lg-12 text-right">
                                        <p>
                                            Campaigns: {{DealerFactory.Campaign.searchCampaigns.campaigns.length}}
                                        </p>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="col-lg-12">

Any help/corrections/suggestions are hugely appreciated

The Element I am trying to target is id='txtCampaignSearch'

I am using visual studio (IDE) & webdriver

1 Answers1

0

Bootstrap is creating the modal with javascript and css, it is not creating a new window that you would have to switch between, as your question implies.

The real problem is that using "input-group-addon" blocks the WebDriver from accessing the input field for some reason, a problem I have run into as well.

Waiting for the modal animation to finish is all you should have to do before clearing and sending keys to txtCampaignSearch.

I had a similar problem with input-group-addon and solved it using javascript. Try something like this:

JavascriptExecutor js = (JavascriptExecutor)driver;
// later on...
js.executeScript("document.getElementById('txtCampaignSearch').value = 'something';");
Community
  • 1
  • 1
  • Thanks Tylerockss for your response. Unfortunately this didn't work either as can be seen from the attached screenshot, webdriver types into incorrect field as both these fields share the same id (id=txtCampaignSearch) although i want my sendkeys to enter text into select a campaign field – Anil Kumar Nagisetty Jan 11 '17 at 10:23