2015-12-03 70 views
0

我遇到的問題是,我試圖在超過5次轉發的網頁上找到第一個元素的xPath。我正在嘗試使用testNG文件在Selenium WebDriver中進行測試。有問題的頁面是以下幾點:如何根據數字找到元素的xpath?

http://example.crowdynews.com/crowdynews/usa/politics/

我知道我可以只是點擊右鍵並找到它的元素的Firepath,但我想使代碼動態考慮到新聞網站是一個動態以及。

如果任何人可以讓我知道如何做到這一點,或者可以指向一個綜合性的網站,可以教我如何做到這一點,我會非常感激,因爲我還沒有找到的東西。

+0

但是這個數字會頻繁變化,那麼您將如何找到元素? –

回答

2

這是一個可能的XPath選擇:

//b[@class='kudos-count' and number(.)>5]/ancestor::div[@class='item-wrap li-link'] 

簡要說明:

  • //b:找到所有b元素的HTML文檔的任何地方...
  • [@class='kudos-count' and number(.)>5]:...其中class屬性等於"kudos-count"和元件,之後轉換爲數字的含量,大於5
  • /ancestor::div:從這樣b元件,返回祖先div元件...
  • [@class='item-wrap li-link']:...其中class屬性等於"item-wrap li-link"。該類別表示包含整個個人消息的div
+0

感謝您解釋如何根據特定方向定位元素。但是,當我嘗試將它放入我的代碼時,出現以下錯誤: 'org.openqa.selenium.NoSuchElementException:無法找到元素:{「method」:「xpath」,「selector」:「b [@ class ='kudos-count'and number(。)> 5]/ancestor :: div [@ class ='item-wrap li-link']「} 命令持續時間或超時時間:10.86秒' – Tscott

+0

它無法找到一個元素。我用下面的:'driver.findElement(By.xpath(「B [@類= '榮譽計數' 和號碼()> 5] /祖先:: DIV [@類= '項目纏繞鋰鏈路' ]「))點擊();' – Tscott

+0

@Tscott看起來像你錯過了''//在的XPath的開頭://'b [@class ....',它使一個真正的區別 – har07