Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
199 views
in Technique[技术] by (71.8m points)

angularjs - Xpath is not working in selenium

I am trying to automate an Angular 2.0 application.

HTML Code:

<input _hello="" class="myclass" formcontrolname="phoneCtrl" required="" sdcleave="" sdmutekeys="[0-9]" type="text" placeholder="Phone number">

When I try to locate above element using xpath locator, it gives me below mentioned error.

Tried Code:

//input[@class='myclass'][0]

Error:no such element: Unable to locate element: {"method":"xpath","selector":"//input[@class='myclass'][0]"}(..)

Can anyone help me on this issue?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Maybe your DOM is not ready yet when Webdriver tries to locate element. Add this code in a util.js file :

util.js

'use strict';

/**
 * Navigate to an url and wait some seconds
 * @param {string} path The path
 * @param {seconds} [seconds] The number of seconds to wait for
 * @returns {Promise}
 * @see waitSomeSeconds
 */
function navigateAndWait(path, seconds) {
  return browser.get(path)
    .then(function () {
      return waitSomeSeconds(seconds);
    });
}

/**
 * Wait some seconds (default is 3)
 * @param {int} [seconds]
 * @returns {Promise}
 */
function waitSomeSeconds(seconds) {
  return browser.sleep((seconds || 3) * 1000);
}

module.exports = {
  navigateAndWait: navigateAndWait,
  waitSomeSeconds: waitSomeSeconds
}

homepage.spec.js

'use strict';

var util = require('./util');

describe('Homepage test suite', function () {

  it('should navigate to homepage', function() {
    return util.navigateAndWait('/homepage');
  });

  it('should display title with correct data', function() {
    expect(element(by.css('h1')).getText()).toBe('Welcome');
  });

});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...