Cypress-自动化测试-获取元素过程中遇到的问题及解决方法

1、input标签类型为number在chrome浏览器中无法写入元素的值

<input type=number,id='hr'.......>向这个元素中写入数据的时候,使用cy.get('#hr').type()的方式,在chrome浏览器下写入失败,使用electron浏览器运行可以运行成功,发现是chrome浏览器的bug。

解决方法:使用setAttruibute方法,改变元素的类型,再写入数据。

具体方法:cy.get('#hr').then((e1)=>{

  el.setAttriubute('type','text')

}).type('值')

2、input标签属性为readonly时写入数据

<input type=text,id='hr',readonly.......>向这个元素中写入数据的时候,可以先删除元素readonly再写入

解决方法:使用removeAttr()方法,改变元素的类型,再写入数据。

具体方法:cy.get('#hr').then((e1)=>{el.removeAttr('readonly')}).type('值')

3、界面元素遮挡的情况下如何写入数据

有时候,我们在界面中输入数据时,例如下拉框正好挡住了要写的输入框,cypress可能就无法找到元素,使用强制输入的方法{force:true}.

cy.get('#hr').type('值',{force:true}.)

此方法在点击时也可以使用,click({force:true}).

原文地址:https://www.cnblogs.com/memebuguoshixingfu/p/11941770.html