繁体   English   中英

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

[英]Using Selenium Webdriver how to retrive date text

使用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();
    }

仍然没有用。 我确定我没有正确执行此操作,因此请帮助我解决此问题。

试试下面的代码来获取date

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

要么

你可以这样

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

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

第一:基于同级文本值“ Last update”查找日期元素。

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

第二:找到“日期”元素,方法是输入“最后更新”文本,然后向上移至父级并找到日期。

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

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

lastUpdate.getAttribute("innerText");

最后,您需要将日期格式更改为"MMM dd, yyyy"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM