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

0

У меня есть пробел с некоторым 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

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

  • 0
    Насколько я знаю, вы не можете сделать это с помощью CSS ... посмотрите на это . Однако с помощью jQuery вы можете попробовать что-то вроде $("#myspan").contents(":not(p)").text(); , ( Редактировать: похоже, это работает только в некоторых версиях jQuery.)
  • 0
    Благодарю вас, похоже, что единственный способ здесь - это использовать то, что вы сказали, с помощью javascriptExecutor в пределах селенового веб-драйвера. Но если не в css, то как насчет использования xpath? Есть ли способ решить вышеуказанную проблему с помощью xpath? еще раз спасибо
Показать ещё 2 комментария
Теги:
selenium-webdriver
css-selectors
jquery-selectors

1 ответ

0
Лучший ответ

Что ж, насколько я знаю, нет селектора или 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());
  • 0
    Ты человек, Амит, еще раз большое спасибо, это сработало! И благодаря сейсису тоже.
  • 0
    рад, что это помогло :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню