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