Python 第n次出现td span:n个子项的Selenium CSS选择器(2)
css选择器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/
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>