使用Selenium Webdriver如何检索日期文本

时间:2017-07-18 02:51:17

标签: java selenium selenium-webdriver

使用selenium webdriver我需要从div标签中获取文本,其中包含日期,如何使用

这是显示div标签的HTML标记。

<div class="gridlayout-column" style="padding-left: 10px; width: calc((100% - 110px) * 0.166667 + 10px);">
    <div class="gridlayout-content">
        <label class="fieldlabel">
            <div class="fieldlabel-label">Last update</div>
            <div class="fieldlabel-content">Jul 12, 2017</div>
        </label>
    </div>
</div>

我存储为上面创建了一个webelement并尝试使用

WebElement lastUpdate = driver.findElement(By.xpath("//*[ . = 'Last update' and //div[contains(@class, 'fieldlabel-content')]]/following-sibling::div[@class='fieldlabel-content']"));

lastUpadte.getText();

输出是 -

所以我的另一个选择就是这个

Date expiryDate = null;
    DateFormat formatter = new SimpleDateFormat("MMM DD, YYYY");
    String dateString = lastUpdate.getText();
     try {
       expiryDate = formatter.parse(dateString);
    } 
     catch (ParseException e) {
     e.printStackTrace();
    }

仍然没有用。我确信我没有做好,所以请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

请尝试以下代码获取date

String date = driver.findElement(By.xpath("//div[@class='gridlayout-content']//div[@class='fieldlabel-content']")).getText();
System.out.println(date);
  

OR

你可以这样做。

WebElement date = driver.findElement(By.xpath("//div[@class='gridlayout-content']//div[@class='fieldlabel-content']"));
String s = date.getText();
System.out.println(s);

答案 1 :(得分:0)

我认为问题是你的XPath不正确。您有几个选择来修复XPath表达式。

首先:根据兄弟文本值找到日期元素&#39;上次更新&#39;。

WebElement lastUpdate = driver.findElement(By.xpath("//*[div='Last update']/*[@class='fieldlabel-content']");

第二:通过文字&#39;最后更新&#39;进入兄弟姐妹来查找日期元素然后由父母找到日期。

WebElement lastUpdate = driver.findElement(By.xpath("//*[text()='Last update']/../*[@class='fieldlabel-content']");

您可以通过以下方式获取日期文字:

lastUpdate.getAttribute("innerText");

最后,您需要将date format更改为"MMM dd, yyyy"

DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");