1

我想获取tr包含span.selected在正确列中的元素。我需要使用一个选择器来完成。

它查找元素是否存在:

By.CssSelector("tr[role='row'].jqgrow td[aria-describedby$='Default'] span.selected")

但它返回span.selectedIWebElement.. 我怎样才能获得tr[role='row'].jqgrowIWebElement(使用 CssSelector 或 XPath)?

4

2 回答 2

3

像这样的东西可能适用于 XPath

//tr[@role='row']
    [contains(@class, 'jqgrow')]
    [.//td[ends-with(@aria-describedby, 'Default')][.//span[contains(@class, 'selected')]]]

contains(@class, 'jqgrow')如果元素有多个类,用(@class and contains(concat(' ', normalize-space(@class), ' '), ' jqgrow '))(从 Python 借来的技巧)替换各种更安全(且可读性更差cssselect

我不认为你可以单独使用 CSS 选择器来实现这一点。

于 2013-08-02T15:36:13.610 回答
2

我不相信 CSS 可以让你这样做,因为你需要一个父选择器:

“包含 bar 的 foo”的 CSS 选择器?.

您将需要使用 XPath,它能够根据孩子选择父母。您可以查看这篇文章以获取有关使用 XPath 选择具有特定子节点的父节点的信息:

XPath 查找具有特定子节点的所有元素

于 2013-08-02T15:32:10.280 回答