2011-09-02 128 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)在這裏包含了答案的基本部分,並提供了供參考的鏈接。 –