不,
(user-agent)
标签告诉您浏览器正在实现阴影元素。在这种情况下,它们是只读的。
您也不应该尝试在测试中直接修改它,因为它是内部实现。您应该与
<input>
元素本身进行交互,尽管它具有 readonly
属性,因此您必须 force
它。
cy.get('input[id="PersonalDetails/tel"]')
.type('123', {force:true})
.trigger('change')
.shadow()
.find('div')
.should('have.text', '123')
如果您的控件位于 Shadow-root(用户代理)内部。您可以使用 Shadow-root(用户代理)的父级执行输入文本、获取值和单击操作。
示例:
(Selenium/C# 代码)-同样也应该适用于其他人
//You can use any identifier like id, XPath, tagname, etc
Var element = Driver.FindElement(By.Tagname("input"));
//Text will return null, so use below code
var text = element.GetAttribute("value");
or
element.Click();
or
element.Sendkeys("Entered text");