Watir - 如何访问Material-UI下拉菜单组件?

时间:2017-05-21 20:25:30

标签: ruby watir material-ui

<div style="color: rgba(0, 0, 0, 0.87); height: 56px; line-height: 56px; overflow: hidden; opacity: 1; position: relative; padding-left: 24px; padding-right: 56px; text-overflow: ellipsis; top: 0px; white-space: nowrap;">Never</div>

列出HTML后,我试图访问www.material-UI.com网站上的下拉列表示例。我尝试了以下两种方法:

b.div(:text => "Never").click

b.span(:text => "Never").click

但是它没有点击组件来打开菜单的其余部分。这是我使用Watir的第一周,我需要使用它来自动化使用React.js和Material-UI构建的Web应用程序。我已成功使用文本框和滚动,甚至点击图像,但菜单和列表证明是有问题的。

2 个答案:

答案 0 :(得分:0)

我要求@ orde建议相关网页为http://www.material-ui.com/#/components/dropdown-menu。下面的解决方案在该页面上为我工作。

要打开“简单示例”部分中的整个菜单,您可以单击按钮:

b.div(:text, 'Never').parent.button.click

但我不确定你遇到了什么问题。是不是菜单根本无法打开,或者您无法打开正确的菜单,因为页面上有多个菜单,内容中有“从不”?

如果问题是后者,那么您可以通过在节标题上进行珩磨来指定您想要进入的页面部分。它有点冗长,但是

b.span(:text, 'Open Immediate example').parent.parent.parent.parent.parent.buttons[1].click

在屏幕上打开第二个“从不”菜单。 (“立即打开示例”文本上方的五个父项会将您带到整个div,而第二个按钮(索引为1)是您想要的下拉列表。将文本更改为“简单示例”将打开与我上面的第一个代码示例相同的菜单。)

答案 1 :(得分:0)

问题是你想要的是嵌套在多个文本节点中,在这种情况下是div标签。因此,获得ElementCollection获取父级和子级div。 所以你可以这样做:

browser.div(text: 'Never').child.click

browser.div(text: 'Never', index: 1).click