Webdriverio元素需要是字符串的类型?

问题描述 投票:0回答:1

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');

有任何想法吗?

javascript selenium-webdriver webdriver-io
1个回答
3
投票

你看,webdriver setValue需要一个必须用于String类型的选择器。

当你使用这段代码:var firstNameTextField = $("[name='first_name']");你得到一个对象,而不是一个字符串。

但是当你这样称它时:browser.setValue("[name='first_name']", 'Joe');你提供的是String类型的选择器。它有效。

所以,您应该将变量更改为var firstNameTextField = "[name='first_name']";

编辑:

我还注意到你在这里使用相同的变量名两次:

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

第二个不应该是lastNameTextField吗?

© www.soinside.com 2019 - 2024. All rights reserved.