2011-09-02 129 views
1

编辑:我在我最初发布的表数据中犯了一个错误。更正在加粗硒RC RC CSS选择器与相邻兄弟组合选择错误的表行

我正在为Selenium RC编写Python。在下面的文档中,我试图选择包含“美国”和“1”的表格行,但选择器始终选择包含“美国”和“”的行。我想我知道为什么。看起来像:contains()与214中的“1”匹配,并选择该行。

这是我的选择语法:

self.selenium.click("css=table#filltbl tr td:contains(%s) + td:contains(%s)"%(country, area_code)) 

其中国家== “美国” 和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>&nbsp;</td> 
     </tr> 
     <tr class="fill"> 
     <td>United States</td> 
     <td>1</td> 
     <td>&nbsp;</td> 
     </tr> 
    </tbody> 
    </table> 
. . . 
+0

似乎没有是已被忽略的兄弟组合子是有帮助的......反正你可以尝试的XPath定位器呢? – BoltClock

+0

感谢您的回复。你是对的。兄弟姐妹组合者不被忽视。我在发布的数据中犯了一个错误,并且我纠正了这个问题。我不想使用XPath,因为它太慢了。 – paul

+0

我不认为你只能用XPath做CSS选择器的精确匹配。 – BoltClock

回答

-1

检查some examples,可以创建复杂CSS3定位器

+0

感谢您的链接。这是一个很好的参考。正如我上面所述,我解决了这个问题。 – paul

+0

@保罗,很高兴知道这些信息对你有帮助。 – user861594

+0

虽然这可能在理论上回答这个问题,但[这将是更可取的](http://meta.stackexchange.com/q/8259)在这里包含了答案的基本部分,并提供了供参考的链接。 –