[英]How to extract string from HTML by XPath into Java?
我正在用Cucumber和Selenium編寫一些自動化測試。 目前,我正在嘗試編寫一個函數來選擇日歷選擇器中的傳遞日期。 我需要使用日歷彈出時顯示的當前年份來確定一些邏輯。
但是,我終生無法找出正確的語法來獲取Java的當年價值以進一步使用它。 第一個div是可靠無歧義的標記,通過它可以導航到需要使用的日歷,甚至可以在瀏覽器開發者控制台中以某種方式選擇年份(在本例中為“ 2017”),但是我無法傳遞給Java。
相關HTML:
<ib-selector class="float-rg fblock40" ng-if="!hideYearSelector" initial-label="dateYear" next-handler="nextYear()" prev-handler="prevYear()"> <div class="calendar-month-year"> <span class="arrow-cal-left" ng-click="prevHandler()" role="button" tabindex="0"> </span> 2017 <span class="arrow-cal-right" ng-click="nextHandler()" role="button" tabindex="0"> </span> </div> </ib-selector>
提取年份的最新嘗試:
String currentYear = driver.findElement(By.xpath("//ib-selector[@initial-label='dateYear']/div/text()")).getAttribute("data");
它產生的異常:
org.openqa.selenium.InvalidSelectorException: invalid selector: The result of the xpath expression "//ib-selector[@initial-label='dateYear']/div/text()" is: [object Text]. It should be an element.
嘗試刪除xpath表達式中的“ / text()”部分。
使用xpath(假設您的路徑正確,因為示例中的HTML實際上無關緊要):
String text = driver.findElement(By.xpath("//ib-selector[@initial-label='dateYear']/div")).getText()
或者如果您想使用element:
WebElement el = driver.findElement(By.xPath("//ib-selector[@initial-label='dateYear']/div"));
String text = el.getText();
這是示例中與HTML相關的路徑:
String text = driver.findElement(By.cssSelector(".calendar-month-year")).getText()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.