【问题标题】:Getting running timer using selenium使用 selenium 获取运行计时器
【发布时间】:2016-01-14 06:55:56
【问题描述】:

我有一个跨度,它是一个计时器,时间一直在持续。使用 selenium 我想获取当前的计时器值。

<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>

但关键是类代码的跨度,不断变化,所以当我运行我的 selenium 项目时如何获取值。

另外,id“cdf8882c_time_remaining”是动态的,所以请不要硬编码。休息就好了。

【问题讨论】:

  • 贴上url,有可能需要用js执行!
  • 请展示您到目前为止所尝试的内容。请不要指望社区会做你的工作
  • @SIslam 它的amazon.com/b?node=11448061011 ,对于正在进行的交易,我想要结束时间
  • @Striker 这不是作业。
  • 否决票是因为我所说的这一点。请参考stackoverflow.com/help/how-to-ask

标签: javascript java selenium


【解决方案1】:

我有一个解决方案。你可以获取页面源并通过像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

【讨论】:

    【解决方案2】:

    只需使用id="dealTimeRemaining" 获取位于div 内的span 元素即可:

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

    【讨论】:

    • 这不会返回它,因为它是由 javascript 提供的。请参阅我在重磅交易下提供的链接
    • 这将在代码运行时返回更新时间-如果您想下次更新,请再次运行哈哈!
    • @SIslam 这不是给予。我检查了。你检查过我附加的链接吗? “Ends in xx h yy m zz s”只返回“End in”与此语句
    • @GitCoder 定位器本身是正确的,并且与问题元素中提供的匹配。我很确定您只需要等待计时器以WebDriverWait 启动即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多