[英]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.