Tag: xpath

查找XML文档中的所有名称空间声明 – xPath 1.0 vs xPath 2.0

作为Java 6应用程序的一部分,我想在XML文档中查找所有名称空间声明,包括任何重复项。 编辑 :Per Martin的请求,这是我正在使用的Java代码: XPathFactory xPathFactory = XPathFactory.newInstance(); XPath xPath = xPathFactory.newXPath(); XPathExpression xPathExpression = xPathExpression = xPath.compile(“//namespace::*”); NodeList nodeList = (NodeList) xPathExpression.evaluate(xmlDomDocument, XPathConstants.NODESET); 假设我有这个XML文档: a e txt:f 要查找所有名称空间声明,我使用xPath 1.0将此xPath语句应用于XML文档: //namespace::* 它找到4个命名空间声明,这是我期望(和期望): /root[1]/@xmlns:att – attribute.com /root[1]/@xmlns:ele – element.com /root[1]/@xmlns:txt – textnode.com /root[1]/@xmlns:xml – http://www.w3.org/XML/1998/namespace 但是,如果我改为使用xPath 2.0 ,那么我将获得16个名称空间声明(前面的每个声明4次),这不是我期望的(或期望的): /root[1]/@xmlns:xml – http://www.w3.org/XML/1998/namespace /root[1]/@xmlns:att – attribute.com /root[1]/@xmlns:ele […]

如何使用java中的XPath / JsonPath更改json文件中的值

这是json文件 { “session”: { “name”:”JSESSIONID”, “value”:”5864FD56A1F84D5B0233E641B5D63B52″ }, “loginInfo”: { “loginCount”:77, “previousLoginTime”:”2014-12-02T11:11:58.561+0530″ } } 我想更改name.by的值直接给XPath / JsonPath Like ($.session.name).changevalue(“MYSESSINID”)这只是一个例子 我正确使用jackson库并使用以下代码通过XPath进行读取 ObjectMapper mapper = new ObjectMapper(); Object jsonObj=mapper.readValue(new File(Json file), Object.class); Object name=PropertyUtils.getProperty(jsonObj, “session.name”); System.out.println(“Name:”+name); 他们是一种通过XPath更改名称的方法 PropertyUtils.setProperty(jsonObj, “session.value”, “new value”); 仍然在文件中它无法正常工作。

Java – 从xml中删除标记

我有一个xml,如下: ABCD 现在,我想删除标签,但保留内容“ABCD”。 或者有没有办法使用java从整个XML文件中删除。 请帮忙。 谢谢。

Selenium Java Webdriver:将字符串添加到Xpath

我有一段Java,我想在一个语句中添加一个String: @and (“^I want to change fieldnumber \”([^\”]*)\” , remove whats inside and add the following text: \”([^\”]*)\”$”) public void testscenario12345(String number, String text) throws Throwable { driver.findElement(By.xpath(“//*[contains(@name,’template:view::item:view:1:item:’)]”)).clear(); driver.findElement(By.xpath(“//*[contains(@name,’template:view::item:view:1:item:’)]”)).sendKeys(text); 如何在上面的代码中添加数字字符串? 为了澄清,如果我在黄瓜中插入“4”,我希望驱动程序通过Xpath找到元素,其中@name包含模板:view:4:item:view:1:item:

通过xpath Selenium java选择动态生成的ID的Web元素

我需要在下拉窗口中选择一个元素。 每当我打开我正在测试的网站的下拉窗口时,网站会随机为该下拉窗口生成一个ID。 下拉窗口的先前实例是可见的(使用Firebug)但不可选。 有一个静态路径,但只有在我使用ChromeDriver测试它时才有效,而不是在我使用FirefoxDriver时。 通过类名定位动态生成的元素(下拉窗口的每个实例具有相同的类)在我第一次尝试时起作用,但每次使用ChromeDriver和FirefoxDriver后我都会收到错误。 我认为它可能试图找到第一个实例,但不是可选择的实例。 这是我的动态代码: driver.findElement(By.xpath(“//div[@class=’really long name for drop down menu’]/ul/li[2]”)).click(); 这是我的静态代码: driver.findElement(By.xpath(“//option[normalize-space(.)=’Text’]”)).click(); 这是动态HTML: Text 这是静态HTML: Select a Thing: Text

使用Child进行XML解析而不是值解析

使用Child进行XML解析而不是值解析 import java.io.File; import java.io.FileInputStream; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList; public class XPathEvaluator { /* * ServiceGroup serviceGroup = new ServiceGroup(); List * requiredServices = new ArrayList(); List * recommandedServices = new ArrayList(); Service service = new * Service(); */ public void evaluateDocument(File xmlDocument) { try […]

无法在selenium-java中使用xpath错误找到元素

这是我试图执行的代码 public WebDriver createPart() { try { driver.findElement(By.id(“username”)).sendKeys(“502409373”); driver.findElement(By.id(“password”)).sendKeys(“Magic14Magic”); driver.findElement(By.id(“submitFrmShared”)).click(); driver.manage().timeouts().implicitlyWait(70, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(70, TimeUnit.SECONDS); Select dropCountry = new Select(driver.findElement(By.id(“txtNewLocation”))); dropCountry.selectByVisibleText(“India”); driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); driver.findElement(By.xpath(“//button[@class=’btn’]/label”)).click(); driver.manage().timeouts().implicitlyWait(70, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(70, TimeUnit.SECONDS); Thread.sleep(10000); driver.findElement(By.xpath(“//li[@class=’icon-button add’]/span”)).click(); driver.findElement(By.xpath(“//div[@id=’ENCActions’]/a/label”)).click(); driver.findElement(By.xpath(“//label[starts-with(text(),’Create Part…’)]”)).click(); driver.manage().timeouts().implicitlyWait(70, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(70, TimeUnit.SECONDS); String parentWindowHandler = driver.getWindowHandle(); // Store your parent window String subWindowHandler = null; Set handles = driver.getWindowHandles(); // […]

Xpath,Java和变量

这是我目前的代码: Document document2 = builder.parse(new FileInputStream(“C:path to xml file.xml”)); Node theNode2 = (Node) xpath.evaluate(“//*[@name=’**variable here**’]”, document2, XPathConstants.NODE); 如果代码在这里说“变量”,是否可以使用变量搜索XML文件? 到目前为止,我只能在我正在搜索的内容中进行硬编码,即: (“//*[@name=’happy’]”, document2, XPathConstants.NODE);

是dyn:评估已知在Xalan-J 2.7.1中存在问题的扩展函数吗?

我很难过为什么以下示例程序拒绝正确应用我的样式表。 看来dyn:evaluate在Xalan 2.7.1中的dyn:evaluate是拒绝处理某些XPath变量。 在类路径中使用xalan-j运行以下程序会产生以下结果: package com.testing2.xslt; import java.io.*; import java.util.logging.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class DynEvaluateTransform { private static final String XSLT = “” + “\n” + “\n” + ” \n” + ” \n” + ” \n” + ” \n” + ” \n” + ” \n” + ” \n” + ” dyn:evaluate available\n” + […]

Selenium WebDriver没有通过XPATH找到元素

我正在尝试编写Selenium Testcase,并在Firefox中使用Selenium IDE。 那里的测试工作得很好。 现在我想用Selenium Webdriver自动化测试并导出相应的JAVA类。 到目前为止,一切都已设置并正常工作(Internet Explorer窗口打开,显示相应的页面)。 但是:Selenium Webdriver没有找到该元素。 我想获得以下元素: Open 我有以下代码: WebElement openWorkItem = driver.findElement(By.xpath(“//div[contains(text(),’Open’)]”)); System.out.println(openWorkItem.getText()); 在使用Selenium IDE的测试用例中,语句几乎相同,并且它正在工作: //div[contains(text(),’Open’)] 唯一的区别是,Selenium IDE仅在Firefox中可用,但最后我希望在IE中使用Selenium WebDriver执行测试。 很感谢任何forms的帮助。 ==更新==我执行了driver.getPageSource() ,现在看到我正在寻找的HTML部分不可用,因为它似乎位于iFrame中。 有任何想法吗?