0

我已经在 selenium-java 中执行了我的代码,我需要一个在 MS Edge 浏览器中打开的 .XML 中的标识符值(第 2 行,而不是第 4 行)。

我的 XML:

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

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

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

1 回答 1

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);
    }
}

结果:

在此处输入图像描述

于 2020-04-30T05:32:36.110 回答