sma*_*010 5 watir-webdriver material-ui
我想知道是否有人有办法对 Material UI 组件进行自动化 UI 测试。
Material UI 元素呈现为嵌套的 div,只有很少的唯一 id 信息,例如:
<div data-reactroot style="...">
<div style="...">
<div style="...">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
嵌套的 div 结构使得使用传统的定位方法变得困难,如果不是不可能的话——(Selenium 和 Watir)、id、名称、类等。
使用 react devtools,可以更清楚地了解页面的结构,但我还不能访问 React “DOM”来定位元素。
任何想法或帮助将不胜感激。
添加示例:
我想不出一个比上面那个更具描述性的例子,实际上可以是 10 层没有任何文本的嵌套 div。
不幸的是,我不知道有什么通用的方法。
一些组件已经有ids,它允许您使用 css 选择器#my-component input(通常足以获得精确的字段),其他组件则需要添加自定义类名(如AutoComplete- popoverProps),这允许您使用类似的选择器。
好消息是每个 MaterialUI 组件都提供className,它可用于定位元素(至少部分) - 详细信息可以在http://www.material-ui.com/#/customization/styles找到
,而且id现场工作也很频繁,即使没有记录。
最后的手段(如果通过类+其他 css 选择器部分进行检测还不够),您可以使用元素文本回退到 XPath 表达式 - 例如,我用于//span[@class="menu-item"][.//div[contains(text(),"${itemName}")]]匹配菜单项。它匹配声明为的东西<MenuItem primaryText={itemName} className="menu-item">
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |