Python 具有相邻同级组合器的Selenium RC css选择器选择了错误的表行
编辑:我在最初发布的表数据中犯了一个错误。更正以粗体显示 我正在为Selenium RC编写Python。在下面的文档中,我试图选择包含“美国”和“1”的表行,但选择器总是选择包含“美国”和“214”的行。我想我知道为什么。看起来:contains()与214中的“1”匹配,并且该行被选中 这是我的选择器语法:Python 具有相邻同级组合器的Selenium RC css选择器选择了错误的表行,python,selenium,css-selectors,Python,Selenium,Css Selectors,编辑:我在最初发布的表数据中犯了一个错误。更正以粗体显示 我正在为Selenium RC编写Python。在下面的文档中,我试图选择包含“美国”和“1”的表行,但选择器总是选择包含“美国”和“214”的行。我想我知道为什么。看起来:contains()与214中的“1”匹配,并且该行被选中 这是我的选择器语法: self.selenium.click("css=table#filltbl tr td:contains(%s) + td:contains(%s)"%(country, area_c
self.selenium.click("css=table#filltbl tr td:contains(%s) + td:contains(%s)"%(country, area_code))
其中国家==“美国”和地区代码==“1”。似乎忽略了相邻的兄弟组合符
如何使:contains()完全匹配“1”
谢谢,很抱歉给你带来了困惑
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
. . .
<table class="wrapper" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<table id="filltbl" class="tfill" cellspacing="0" cellpadding="0">
<tbody>
<tr class="fill">
<td>United States</td>
<td>214</td>
<td> </td>
</tr>
<tr class="fill">
<td>United States</td>
<td>1</td>
<td> </td>
</tr>
</tbody>
</table>
. . .
. . .
美国
214
美国
1.
. . .
检查是否有助于创建复杂的css3定位器似乎不是被忽略的兄弟组合符。。。无论如何,你能试试XPath定位器吗?谢谢你的回复。你说得对。兄弟组合器不会被忽略。我在发布的数据中犯了一个错误,我已经纠正了这个问题。我不想使用XPath,因为它太慢了。我认为您无法与CSS选择器进行精确匹配,只能使用XPath。再次感谢您的回复。在本例中,我放弃了使用:contains()。由于IE的XPath速度太慢,我最终在表上迭代,直到找到匹配的行,然后在选择器中使用索引,如下所示:self.selenium.click(“css=table#filltbl tr:nth(%d)”%rowNumber)
感谢链接。这是一个很好的参考。我已经解决了上面提到的问题。虽然这可以从理论上回答这个问题,但这里要包括答案的基本部分,并提供链接供参考。