У меня есть пробел с некоторым id; и в пределах этого промежутка есть как тег пункта p, так и некоторый текст без тегов, как указано ниже. Я использую selenium webdriver для адресации по адресу ниже.
<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
В очередной раз благодарим за помощь.
Что ж, насколько я знаю, нет селектора или 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());
$("#myspan").contents(":not(p)").text();
, ( Редактировать: похоже, это работает только в некоторых версиях jQuery.)