2015-10-15 89 views
-3

我得到了一個跨度,這是一個計時器,時間不斷。使用硒我想抓住當前的計時器值。使用硒獲取運行計時器

<div id="dealTimeRemaining" class="miniText marginTop green"> 
    <span id="cdf8882c_time_remaining"> 
    <span class="ticker">00</span>h 
    <span class="ticker">46</span>m 
    <span class="ticker">22</span>s 
    </span> 
</div> 

但關鍵是跨班級ticker,不斷變化,所以當我運行我的硒項目時如何獲得價值。

此外,ID「cdf8882c_time_remaining」是動態的,所以請不要對其進行硬編碼。休息一切都很好。

+0

文章的網址,有可能需要使用JS執行! – SIslam

+0

請告訴你迄今爲止所嘗試的。請不要期望社區做你的工作 – Sighil

+0

@SIslam其http://www.amazon.com/b?node=11448061011,對於交易進行中,我想結束時間剩下 – GitCoder

回答

1

id="dealTimeRemaining"剛拿到位於divspan元素:

driver.findElement(By.cssSelector("div#dealTimeRemaining > span")).getText(); 
+0

這不會返回它,因爲它是由JavaScript提供的。請參閱我提供的重磅交易下的鏈接 – GitCoder

+0

鏈接是http://www.amazon.com/b?node=11448061011,如果您想嘗試 – GitCoder

+0

這將在代碼運行時返回更新時間 - 如果您希望下一次更新然後再運行哈! – SIslam

0

我有一個解決辦法。 U可以獲取頁面源代碼,並通過像jsoup這樣的html解析器傳遞它。

WebDriver driver = new FirefoxDriver(); 
driver.manage().window().maximize(); 
driver.get("http://www.amazon.com/b?node=11448061011"); 

String pageSource = driver.getPageSource(); 

// parse the page source through jsoup 
Document document = Jsoup.parse(pageSource); 

// get all the elements containing id dealTimeRemaining 
Elements dealTimeRemainingDivs = document.getElementsByAttributeValue("id", "dealTimeRemaining"); 

// iterate through all the deal time remaining divs 
for (Element dealTimeRemainingDiv : dealTimeRemainingDivs) { 
    String time = "Time"; 
    // find the ticker spans containing the time 
    Elements tickerSpans = dealTimeRemainingDiv.getElementsByClass("ticker"); 
    // iterate through all the ticker spans 
    for (Element tickerSpan : tickerSpans) { 
     time = time + ":" + tickerSpan.text(); 
    } 
    System.out.println(time); 
} 

輸出

Time:09:23:44 
Time:09:23:43 
Time:09:23:43 
Time:09:23:43 
Time:00:08:44 
Time:03:28:44 
Time:00:03:44 
Time:08:53:44