Элемент Webdriverio должен быть тип строки? - PullRequest
0 голосов
/ 08 сентября 2018

Элемент Webdriverio должен иметь тип строки?

Мой код выглядит следующим образом:

describe('Test Contact Us form WebdriverUni', function() {
  it.only('Should be able to submit a successful submission via contact us form', function(done) {
    browser.pause(5000);
      var firstNameTextField = $("[name='first_name']");
      var firstNameTextField = "[name='last_name']";

      browser.setValue(firstNameTextField, 'Joe');

Используя следующий код: var и $, я, кажется, получаю следующее исключение: 'element должен иметь тип String'.

Также не удается выполнить следующее с тем же исключением:

var firstNameTextField = browser.element("[name='last_name']");

Однако работают следующие:

browser.setValue("[name='first_name']", 'Joe');

Есть идеи?

1 Ответ

0 голосов
/ 08 сентября 2018

Видите ли, webdriver setValue принимает селектор, который должен быть для типа String.

Когда вы используете этот фрагмент кода: var firstNameTextField = $("[name='first_name']"); вы получаете объект, а не строку.

Когда вы называете это так: browser.setValue("[name='first_name']", 'Joe'); вы предоставляете селектор типа String. И это работает.

Итак, вы, вероятно, должны изменить свою переменную на var firstNameTextField = "[name='first_name']";

EDIT:

Я также заметил, что вы дважды используете одно и то же имя переменной:

  var firstNameTextField = $("[name='first_name']");
  var firstNameTextField = "[name='last_name']";

Не должен ли второй быть lastNameTextField?

...