使用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();
}
仍然没有用。我确信我没有做好,所以请帮我解决这个问题。
答案 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");