Может ли кто-нибудь помочь мне получить значение от. XML - PullRequest
0 голосов
/ 30 апреля 2020

Я выполнил свой код в селене - java, и мне нужно значение идентификаторов (2-я строка, а не 4-я) из. XML, которое открывается в браузере MSdge.

Мой XML:

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

Может кто-нибудь помочь мне с кодом, чтобы получить значения (18753), который находится между строкой идентификатора 2. Примечание: у меня есть код, который отлично работает для chrome & FF, но бот может работать для MSedge:

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

1 Ответ

0 голосов
/ 30 апреля 2020

Я думаю, что в вашей функции 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...