爲硒

2011-04-15 48 views
0

網頁的HTML的某些部分對應的XPath CSS定位器我敢測試看起來像這樣爲硒

<div id="twoWideCallouts"> 

<div class="callout"> 
    <a target="_blank" href="http://facebook.com">Facebook</a> 
</div> 

<div class="callout last"> 
    <a target="_blank" href="http://youtube.com">Youtube</a> 
</div> 

我已經檢查使用硒,當我點擊文本,打開的URL與href中給出的相同,而不是錯誤頁面。

使用XPath我已經寫了下面的命令

//i is iterator 
selenium.getAttribute("//div[contains(@class, 'callout')]["+i+"]/a/@href") 

然而,這是非常緩慢和一些鏈接無法正常工作。在本網站上閱讀很多答案和評論我來知道CSS loactors更快和更清潔的保持,所以我又寫了作爲

css = div:contains(callout) 

首先,我不能夠達到的定位標記。

其次,此頁面可以有任何數量的div,其中id = callout。使用xpathcount我可以得到這個計數,我將迭代這個計數並執行href檢查。如何使用CSS定位器完成類似的事情?

任何幫助,將不勝感激。

編輯

我可以點擊使用定位器css=div.callout a的鏈接,但是當我試圖讀取使用String str = "css=div.callout a[href]"; selenium.getAttribute(str); href值。我得到錯誤 - 元素未找到。控制檯說明如下。

19:12:33.968 INFO - Command request: getAttribute[css=div.callout a[href], ] on session 
19:12:33.993 INFO - Got result: ERROR: Element css=div.callout a[href not found on session 

我試圖讓使用XPath href屬性這樣

"xpath=(//div[contains(@class, 'callout')])["+1+"]/a/@href" and it worked fine. 

請告訴我我應該是這個對應的CSS定位。

+0

對XPath的抱怨與對XPath的詢問不一樣...重新貼上標籤。 – 2011-04-15 15:27:32

+0

我不是在抱怨,我只是解釋了我的觀察,也許我可以用更多的經驗以更好的方式發佈問題。我只是想知道以更有效的方式解決問題的方法。 – 9ikhan 2011-04-15 15:51:09

回答

0

要讀取我使用的屬性css=div.callout [email protected],它的工作。問題是在屬性名稱周圍使用方括號。

0

對於你的問題的第一部分,你的錨上的超級鏈接標識:

css=a[href=http://youtube.com] 

爲了實現在DOM元素的計數,基於CSS選擇器,這裏是一個excellent文章。

+0

謝謝。我想檢查class = callout下存在的所有hrefs。如果僅使用CSS定位器給出父項,是否有方法可以相對查找子項的屬性值?再次感謝您的鏈接。 – 9ikhan 2011-04-16 03:41:12

0

它應該是 -

CSS = DIV:包含(標註)

你注意到 「:」 而不是 「」你用過嗎?

對於CSSCount這可能幫助 -

http://www.eviltester.com/index.php/2010/03/13/a-simple-getcsscount-helper-method-for-use-with-selenium-rc/

在不同的音符,你看到的區域51個新硒網站的建議 - http://area51.stackexchange.com/proposals/4693/selenium

+0

謝謝,我在編輯中改變了這一點,請參閱更新信息。我已經通過這個鏈接了,我可以用這個來計算元素。我現在被卡住的地方是爲了獲取屬性值,因爲我必須將其與CMS內部進行比較。 – 9ikhan 2011-04-16 14:03:28