Python 第n次出现td span:n个子项的Selenium CSS选择器(2)

Python 第n次出现td span:n个子项的Selenium CSS选择器(2),python,selenium,xpath,css-selectors,Python,Selenium,Xpath,Css Selectors,css选择器td span:n子节点(2)表示td的第二个子节点span。我想选择第n个td span:n个孩子(2),类似于: driver.find_element_by_css_selector("td span:nth-child(2):eq(4)") 我知道我可以用 driver.find_elements_by_css_selector("td span:nth-child(2)")[4] 或xpath: driver.find_elements_by_xpath('(//td/

css选择器
td span:n子节点(2)
表示
td
的第二个子节点
span
。我想选择第n个
td span:n个孩子(2)
,类似于:

driver.find_element_by_css_selector("td span:nth-child(2):eq(4)")
我知道我可以用

driver.find_elements_by_css_selector("td span:nth-child(2)")[4]
或xpath:

driver.find_elements_by_xpath('(//td/span[2])[4]')

我只是想知道我是否可以用css选择器做同样的事情。

如果我正确理解了你的问题,你也可以在
td
上使用
nth-child()

driver.find_elements_by_css_selector("td:nth-child(4) span:nth-child(2)")

使用CSS选择器无法完成此操作<代码>:eq()来自jQuery,不属于任何标准

td:nth child(4)span:nth child(2)
表示完全不同的内容,仅在非常特定的情况下有效,例如,只有一个表行包含四个
td
元素,所有这些元素都至少包含两个
span
子元素:

<body>
  ...
  <table>
    <!-- The first, or only, row in the entire document
         with this many cells containing this many spans -->
    <tr>
      <td>
        <span></span>
        <span></span>
      <td>
        <span></span>
        <span></span>
      <td>
        <span></span>
        <span></span>
      <td>
        <span></span>
        <span></span>
  </table>
  ...
</body>

如果您知道td:n个孩子(4)span:n个孩子(2)保证在您的情况下工作,请随意使用。

谢谢,我正在处理后面的案例。我将改为使用
xpath
<body>
  ...
  <table>
    <tr>
      <td>
        <span></span>
        <span></span>
      <td>
        <span></span>
        <span></span>
    <tr>
      <td>
        <span></span>
        <span></span>
      <td>
        <span></span>
        <span></span> <!-- (//td/span[2])[4] -->
  </table>
  ...
</body>