【问题标题】:Webdriverio element needs to be type of string?Webdriverio 元素需要是字符串类型吗?
【发布时间】:2018-09-08 12:23:39
【问题描述】:

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

有什么想法吗?

【问题讨论】:

    标签: javascript selenium-webdriver webdriver-io


    【解决方案1】:

    你看,webdriver setValue 需要一个选择器,该选择器必须是 String 类型。

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

    当你这样称呼它时:browser.setValue("[name='first_name']", 'Joe'); 你提供了一个字符串类型的选择器。它有效。

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

    编辑:

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

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

    第二个不应该是lastNameTextField吗?

    【讨论】:

    • 克里斯非常感谢!上面列出的同名变量仅用于说明目的,再次感谢您花时间创建详细的答案。
    • 我将如何使用 $ 来设置我的变量根据:webdriver.io/api/utility/$.html
    • 如果你想使用从var firstNameTextField = $("[name='first_name']"); 得到的元素,那么:而不是browser.setValue(firstNameTextField, 'Joe'); 这样做:firstNameTextField.setValue('Joe');
    猜你喜欢
    • 2019-05-27
    • 2018-09-14
    • 1970-01-01
    • 2021-12-28
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多