Как извлечь текст вошедшего в систему пользователя через Xpath - PullRequest
0 голосов
/ 17 декабря 2018

После входа в систему появляется приветственное сообщение «имя пользователя»,

Source code

Я хочу написать xpath для захвата этого пользователя.Несколько идей, которые я попробовал:

//span[@id='WhoLoggedInUpdatePanel']//h1//br[contains(text(),'Welcome Sheikh')]

//h1[contains(text(),'"Welcome Sheikh"')]

Ни одна из них не работает.Ваше предложение будет очень полезно.

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Неправильно находить, используя имя, потому что, если учетные данные входа изменятся, тогда имя будет изменено.

Используйте //span[@id='WhoLoggedInUpdatePanel']/h1 и возьмите текст, который присутствует в <h1> или эквивалентном селекторе CSS span[id='WhoLoggedInUpdatePanel']>h1

String userName = driver.findElement(By.xpath("//span[@id='WhoLoggedInUpdatePanel']/h1")).getText();

и затем проверьте, ожидается ли ваше использование.

if(userName.contains("Sheikh")){
    System.out.println("valid user");
} else {
    System.out.println("invalid user");
}
0 голосов
/ 17 декабря 2018

Чтобы извлечь текст Привет Шейх , так как это текстовый узел в пределах его предка <h1>, вам нужно использовать метод executeScript () и вы можете использовать следующее решение:

WebElement myElement = driver.findElement(By.xpath("///span[@id='WhoLoggedInUpdatePanel']/h1"));
String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString();
0 голосов
/ 17 декабря 2018

Попробуйте следующий текст, чтобы получить текст

String user = driver.findElement(By.xpath("//span[@id='WhoLoggedInUpdatePanel']/h1").getAtrribute("innerText");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...