Comme vos informations fournies un peu vague trouver ci-dessous deux extraits de travail.
obtenir le document entier
URI uri = new URI("http://host:port/job/JOB_NAME/api/xml");
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xPath.compile("//lastSuccessfulBuild/url")
.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.println("last successful: " + nodeList.item(i).getTextContent());
}
con.disconnect();
obtenir seulement la partie intéressante en utilisant l'API Jenkins XPath sortie
URI uri = new URI("http://host:port/job/JOB_NAME/api/xml"
+ "?xpath=//lastSuccessfulBuild/url");
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xPath.compile("/url")
.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.println("last successful: " + nodeList.item(i).getTextContent());
}
con.disconnect();
exemple pour les deux
last successful: http://host:port/job/JOB_NAME/1234/
Voir les extraits uniquement en tant que PoC pour démontrer que XPath sur l'API XML de Jenkins fonctionne en général.
Lorsque vous parlez de 'xpath', je suppose que vous avez déjà regardé' l'API REST de Jenkins'? Qu'avez-vous essayé jusqu'à présent? Quel est votre problème avec 'xpath'? – SubOptimal
driver.findElement (By.xpath (xpathExpression)) ne fonctionne pas pour les xpath de la page de rapport HTML Jenkins. J'ai utilisé le suivant ---> URL url = nouvelle URL ("http://jenkins.companyname.com/job/" + jobName + "/" + build + "/ api/xml"); –