我如何获得#shadow-root(用户代理)Cypress JS

问题描述 投票:0回答:2

如果有什么办法我可以到达#shadow-root(用户代理)元素???

嗨,我需要更改 div 中的值,我尝试更改输入,但它对我没有帮助

javascript cypress shadow-dom
2个回答
2
投票

不,

(user-agent)
标签告诉您浏览器正在实现阴影元素。在这种情况下,它们是只读的。

您也不应该尝试在测试中直接修改它,因为它是内部实现。您应该与

<input>
元素本身进行交互,尽管它具有
readonly
属性,因此您必须
force
它。

cy.get('input[id="PersonalDetails/tel"]')
  .type('123', {force:true})
  .trigger('change')
  .shadow()
  .find('div')
  .should('have.text', '123')

0
投票

如果您的控件位于 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");
© www.soinside.com 2019 - 2024. All rights reserved.