2013-06-05 94 views
1

我使用Ubuntu 12和硒和Firefox 7(第一個是21,我檢查硒支持列表,它不列入支持火狐21,所以我卸載21和安裝7.我還安裝硒IDE和硒的webdriver 。硒火狐CSS選擇碰撞

這裏是我的目標

<a href="javascript:void(0);" class="vd_dload" data-info="...."> 

<a href="javascript:void(0);" class="vd_dload" data-info="...."> 

<a href="javascript:void(0);" class="vd_dload" data-info="...."> 

所以我用EQ(0)方程(1)選擇的元素。我在硒IDE測試它,它的作品。我選擇它像

command clickandwait css=a.vd_dload:eq(2) 

並保存作爲蟒蛇測試代碼

driver.find_element_by_css_selector("a.vd_dload:eq(1)").click() 

和Python代碼兌現在這裏。舉報:

InvalidSelectorException:Message: u'The give selecor a.vd_dload:eq(2) is either invalid or does not result in a webElement. the following error occurred:\n[Exception.."An invalid or illegal string was specified" code:"12" nsresult:"0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)" location...... 

人給一些建議?

回答

0

eq是jQuery選擇,並且因此不是CSS標準的一部分。因此,一旦你用Selenium運行它告訴它「這是我的CSS選擇器」,它將是一個非常不愉快的工具。

雖然不是直接等同(如,eq = nth-child!),在您的實例中,CSS選擇器nth-child是要很好地工作:

a.vd_dload:nth-child(1) 
a.vd_dload:nth-child(2) 
a.vd_dload:nth-child(3) 

注意,nth-child CSS選擇器的一部分CSS3選擇器規範,因此可能會導致IE的問題。它只支持IE9及以上版本,以及任何現代版本的FF/Chrome /等。

+0

現在不會報告「被指定無效或非法串」,它報告「元素不是當前visable,因此可能無法與互動」,但我敢肯定的CSS選擇是正確的。我已經嘗試過使用xpath,不起作用。 – user2435879

+0

這是一個稍微不同的問題。我會說爲此創建一個新問題。 – Arran