How to set focus on a section of my web page then

2019-02-21 17:55发布

问题:

using protractor I would like to first set focus on a left pannel in my web page then scroll down in order to click on a filter. Any idea how to do this using protractor syntax? Here is my HTML :

<section id="filters" style="height: 266px; overflow: hidden;" tabindex=
"5076">
    <div class="ng-binding" id="currentSearchTitle">
        Current search
    </div>

    <div id="currentSearch">
        <div id="searchBlock">
            <div id="jobTypeBlock">
                <div class="ng-binding" id="jobTypeTitle">
                    Filter by job type
                </div>

                <div class="ng-scope">
                    <div class="ng-scope">
                        <div class="ng-scope">
                            <div class="ng-scope">
                                <div class="ng-scope">
                                    <div class="ng-scope">
                                        <div class="ng-scope"></div>

回答1:

To set the focus on your panel you can maybe click on it:

element(by.id('filters')).click();

Then to scroll to your filter, you can execute a client side script:

var filter = browser.findElement(by.id('jobTypeTitle'));
var scrollIntoView = function () {
  arguments[0].scrollIntoView();
};
browser.executeScript(scrollIntoView, filter);

You can have a look at the webdriverjs doc.



回答2:

You can use this too: browser.executeScript("arguments[0].scrollIntoView();", basePage.faqText.getWebElement());

I does the magic in one line.

basePage.faqText is the element that I want to scroll here.