使用带有cypress / javascript的cy.get键入一个html框,但没有找到id

时间:2018-05-16 16:06:36

标签: javascript html cypress

我是cypress / html的新手,我正在尝试在以下地址栏中输入地址

<input type="text" title="Street Address 1" name="billing[street][]" id="billing:street1" value="" class="input-text " autocomplete="address-line1">

所以我想做的就是在这个框中输入内容,以便我写

cy.get('#billing:street1').type('1322 the gulag archipelago')

但是我在cypress中遇到以下错误:

预计会找到'#billing:street1',但从未找到它。

所以我的问题是为什么这不起作用,因为我之前已经完成了这个.get,它已经工作了。

编辑: 可能是因为我需要使用'billing:street1'或类似的东西来指定:的含义。我特意尝试了这个并没有用。

提前谢谢你。

2 个答案:

答案 0 :(得分:1)

有多种方法。

使用元素标签本身:

cy.get('input').type('1322 the gulag archipelago');

使用属性标签之一:

cy.get('[title="Street Address 1"'].type('1322 the gulag archipelago');

cy.get('[id="billing:street1"]).type('1322 the gulag archipelago');

cy.get('[class="input-text "]').type('1322 the gulag archipelago');

在表单元素内:

cy.get('[sample-form-id="ExampleAddressForm"]').within(() => {
    cy.get('input').type('1322 the gulag archipelago');
});

如果这是页面上的第三个输入:

cy.get('input').then((inputs) => {
    cy.get(inputs[3]).type('1322 the gulag archipelago');
});

答案 1 :(得分:0)

所以这就是我如何使用它我可以使用类似jQuery的命令来查询标题这实际上更加强大,因为id可以被更改,但最可能的是标题不会是命令

class RecordObject(models.Model):
      status = models.CharField()
      collection_date - models.CharField()

class RecordHistory(models.Model):
      status = models.CharField()
      collection_date - models.CharField()

工作正常,因为你几乎可以在cypress中执行jQuery操作。