Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webdriverio元素是否需要为字符串类型?_Javascript_Selenium Webdriver_Webdriver Io - Fatal编程技术网

Javascript Webdriverio元素是否需要为字符串类型?

Javascript Webdriverio元素是否需要为字符串类型?,javascript,selenium-webdriver,webdriver-io,Javascript,Selenium Webdriver,Webdriver Io,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 = $("[

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和$,我似乎收到了以下异常:“元素需要是字符串类型”

此外,以下操作失败,但出现相同的异常:

var firstNameTextField = browser.element("[name='last_name']");
然而,以下工作:

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

有什么想法吗?

您知道,webdriver setValue使用的选择器必须是String类型

使用这段代码时:
var firstNameTextField=$(“[name='first\u name']”)您得到的是一个对象,而不是字符串

当你这样称呼它时:
browser.setValue(“[name='first\u name']”,'Joe')您正在提供字符串类型的选择器。它是有效的

因此,您可能应该将变量更改为
var firstNameTextField=“[name='first_name']”

编辑:

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

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

第二个不应该是lastNameTextField吗?

您知道,webdriver setValue使用的选择器必须是String类型

使用这段代码时:
var firstNameTextField=$(“[name='first\u name']”)您得到的是一个对象,而不是字符串

当你这样称呼它时:
browser.setValue(“[name='first\u name']”,'Joe')您正在提供字符串类型的选择器。它是有效的

因此,您可能应该将变量更改为
var firstNameTextField=“[name='first_name']”

编辑:

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

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

第二个不是应该是lastNameTextField吗?

Chris非常感谢!上面列出的同名变量仅用于说明,再次感谢您花时间创建详细答案。我将如何使用$根据以下内容设置变量:?如果您想使用从
var firstNameTextField=$(“[name='first_name']”)获得的元素
then:而不是
browser.setValue(firstNameTextField,'Joe')像这样做:
firstNameTextField.setValue('Joe')克里斯,非常感谢!上面列出的同名变量仅用于说明,再次感谢您花时间创建详细答案。我将如何使用$根据以下内容设置变量:?如果您想使用从
var firstNameTextField=$(“[name='first_name']”)获得的元素
then:而不是
browser.setValue(firstNameTextField,'Joe')像这样做:
firstNameTextField.setValue('Joe')