任何人都可以帮助我从.XML中获得价值

时间:2020-04-30 00:20:16

标签: xml-parsing microsoft-edge browser-automation selenium-edgedriver

我已经在selenium-java中执行了我的代码,我需要在MS Edge浏览器中打开的.XML中的Identifiers(第二行,而不是第四行)的值。

我的XML:

<Application Type="ABCD">
<Identifier>18753</Identifier>
<SalesChannel SalesChannelType="PQRS" SalesChannelSegment="XYZ">
<Identifier>AB1234</Identifier>

任何人都可以通过代码帮助我获取位于标识符第二行之间的值(18753)。 注意:我有一个适用于chrome和FF的代码,但是该机器人可以用于MSedge:

Assert.assertTrue(driver.getPageSource().contains("Identifier"));   
String xml =  driver.getPageSource();
String appID = xml.split("<Identifier>")[0].split("</Identifier>")[1];

1 个答案:

答案 0 :(得分:0)

我认为您的split函数存在错误。正确的代码应如下所示:

String appID = xml.split("</Identifier>")[0].split("<Identifier>")[1];

示例代码:

import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;


public class Edgeauto {
    public static void main(String[] args) { 
        System.setProperty("webdriver.edge.driver", "your_path_of_webdriver\\msedgedriver.exe"); 
        EdgeOptions edgeOptions = new EdgeOptions();
        WebDriver driver = new EdgeDriver(edgeOptions); 
        driver.get("http://xxx.xml");

        Assert.assertTrue(driver.getPageSource().contains("Identifier"));   
        String xml =  driver.getPageSource();       
        String appID = xml.split("</Identifier>")[0].split("<Identifier>")[1];    
        System.out.println(appID);
    }
}

结果:

enter image description here

相关问题