【发布时间】:2021-06-09 07:39:06
【问题描述】:
我是使用 cucumber 和 selenium-webdriver 进行 Ruby 自动化测试的新手。 我从另一个人那里收到了源代码自动化。他在页面上找到元素的方式看起来像: element(:error_message) { browser.elements(class: 'input-invalidate') }
现在我需要访问 ShadowRoot 中的元素,做了一些研究,但无法得到 Ruby 代码的答案。 下图是一个例子,我想在shadowroot里面获取id="maincontainer"的div标签,有人可以帮忙吗?
【问题讨论】:
-
在 Ruby Selenium Binding 提问时添加 selenium 标签和 watir 标签。
-
IF DOM 节点在您查询的那一刻存在;
document.querySelector("downloads-manager").shadowRoot.querySelector("#mainContainer")应该这样做 -
@Danny'365CSI'Engelman 使用 Javascript 似乎是一种解决方法,看起来 Selenium 仍然不支持 Shadow DOM,嗯?
-
我越来越认为您不应该在现代工具领域使用 oldskool 工具进行测试。特斯拉在电池安装到汽车后也没有对其进行全面测试。与电池一样,Web 组件应作为半成品进行测试。您在使用手机之前是否测试 G4 连接?它要么有效,要么无效。
-
@Danny '365CSI' Engelman 你明白我在说什么吗? Selenium 无法在 shadow DOM 中定位元素。
标签: ruby selenium watir shadow-dom