Нахождение сложного промежутка: не (p) селектор для селена webdriver

У меня есть промежуток с некоторым идентификатором; и в пределах этого промежутка есть и тег параграфа p, и некоторый текст без тегов, как показано ниже. Я использую селеновый веб-драйвер, чтобы указать адрес улицы, указанный ниже.

 <span id="myspan">
    <p>fullname</p>
    street address - has no tags attributes.
 </span>

Мне нужно указать адрес улицы ТОЛЬКО без полного имени.

Я думал что-то вроде этого:

span#myspan.not(p) // select all content of the span element, then ignore the p 
tag within it, so that only the street address is left. 

//

driver.findelement(By.cssSelector("span#myspan.not(p)")) // should select street 
address

В очередной раз благодарим за помощь.

1 ответ

Решение

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

String spanText = driver.findElement(By.cssSelector("span#myspan")).getText();
String pText = driver.findElement(By.cssSelector("span#myspan > p")).getText();
String requiredText = spanText.replace(pText,"");

Первое утверждение должно получить вас fullname street addressВторое достанется fullname и третье утверждение вернется street address,

Если вы хотите удалить начальные и конечные пробелы, должно работать следующее:

System.out.println(requiredText.trim());
Другие вопросы по тегам