Нахождение сложного промежутка: не (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());