使用标签和类通过硒化物定位祖先



我试图在网站上找到祖先元素(使用Selenide库)。父元素是

方法。close ("。bordergrid -cell")工作正常。但是方法。close (div.BorderGrid-cell")不起作用(错误"NoSuchElementException: no such element: able to locate element")。为什么会这样呢?

我正在编写代码,它检查页面https://github.com/selenide/selenide代码应该找到贡献者列表,并将鼠标悬停在列表的第一个贡献者上。由于列表中没有好的定位器,我找到了文本"contributor",然后向上找到找到的标签的祖先(通过最接近),然后向下到列表。

正常工作的代码:

$("div.Layout-sidebar").$(byText("Contributors")).closest(".BorderGrid-cell").$$("ul li").first().hover();

不工作的代码:

$("div.Layout-sidebar").$(byText("Contributors")).closest("div.BorderGrid-cell").$$("ul li").first().hover();

唯一的区别是.close()方法中的'div'。我期望这两个代码的工作原理是一样的。为什么第二个不行?

Github上的代码:https://github.com/Anton248/QA_guru_getting_started_Java/blob/master/src/test/java/github/DifferenceBetweenTwoExpressions.java

我想这个方法不是为使用这样的选择器而设计的。最近https://selenide.org/javadoc/current/com/codeborne/selenide/SelenideElement.html(以):

selector -EitherHTML标签、CSS类、属性或带有值的属性

-在两个(或偶尔更多)选项中的第一个之前使用被指定的(另一个被"或"引入)

所以,你必须从列表中选择一个选择器(而不是它们的组合):

HTML标记
  • ,
  • CSS类,
  • 性>

最新更新