Как отделить 70 от 70 (100%), где 70 и (100%) связаны тегом <br> в селене?
Вот структура:
<a href = "/report/campaigns/698/sent" class = ""> 70<br> (100%)</a>
Код, который я использую:
String[] REP=new String[1];
String Repor= driver.findElement(By.xpath("//html[1]/body[1]/section[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[5]/table[1]/tbody[1]/tr[1]/td[6]")).getText();
REP=Repor.split("");
System.out.println("REP "+REP[0]);
Результат, который я получаю: 7
На этот раз dhilmathy опередила меня, исправив это для вас. Пожалуйста, используйте инструменты в следующий раз. Спасибо!
Мы не сможем вам помочь, не видя структуры HTML/DOM, из которой вы пытаетесь получить эту информацию.
Пожалуйста, используйте ссылку «редактировать», а не комментарии, чтобы улучшить вопрос.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Этот Xpath сумасшедший, но для решения вашей проблемы, я думаю, это может быть так же просто, как добавить пробел между кавычками в вашей функции split(). Так должно быть
REP=Repor.split(“ “)
Редактировать после уточнения: строка Отчет устанавливается с разрывом строки. Таким образом, следующий код должен найти «70» и «(100%)» по отдельности.
String lines[] = Repor.split("\\r?\\n");
тогда lines[0] равно "70", а lines[1] равно "(100%)". Это то, что вы хотели?
Пробовал это уже. Не работает. Он печатает все это.
Что получится из строки Repor, если вы отлаживаете или добавляете строку печати сразу после нее?
Печатает все то же самое. Я использую его в цикле for и получаю значения из столбца таблицы.
Что, вы имеете в виду включая br или просто «70 %100»?
70 (100%) Это результат для обоих случаев. (100%) находится в следующей строке
Я отредактировал свой вопрос, чтобы устранить разрыв строки. Это работает для вас?
да. Получил 70. Но мне нужно сохранить его как int, и я не могу использовать parseint, так как мы использовали строку []. Пожалуйста, предложите.
Вам нужна только первая строка, 70? Если да, то должно работать следующее: result = int(lines[0])
Да, мне нужно только 70. Используется результат = int(lines[0]), но выдаются следующие ошибки: - Синтаксическая ошибка в токене "int", удалите этот токен - Несоответствие типов: невозможно преобразовать из String в int
Забыли, что мы используем Java. Попробуйте Integer.parseInt(lines[0]);
@Ashu У тебя получилось? Если да, то примете ли вы один из моих ответов или ответов DebanjanB, если у вас будет такая возможность?
Все работает отлично. Большое спасибо за помощь. Действительно ценю это.
Нет проблем, рад это слышать. К следующей проблеме!
Чтобы извлечь текст 70, вы можете использовать любой из следующих Стратегии поиска:
cssселектор:
WebElement myElement = driver.findElement(By.cssSelector("a[href='/report/campaigns/698/sent']"));
String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].firstChild.textContent;', myElement).toString();
xpath:
WebElement myElement = driver.findElement(By.xpath("//a[@href='/report/campaigns/698/sent']"));
String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].firstChild.textContent;', myElement).toString();
Пробовал стратегию локатора xpath, но на выходе получилось 70 (100%). Все в одну строку
Получил требуемый результат. Используемый метод подстроки после предложенного вами кода. Большое спасибо. :)
@Ashu Не уверен, где именно вы застряли, но если вы использовали мой код, он вам точно не понадобится substring.
Каждый тег считается разделителем существующего текстового узла родительского тега: решение состоит в том, чтобы указать индекс желаемого текстового узла //a/text()[1]
Привет! Когда вы задавали свой вопрос, справа от текстовой области было большое оранжевое поле Как форматировать с полезной информацией. Также была панель инструментов, полная средств форматирования. И кнопка [?] для помощи в форматировании. А также область предварительного просмотра, показывающая, как ваше сообщение будет выглядеть после публикации, расположенное между текстовой областью и кнопкой «Отправить вопрос» (так что вам придется прокручивать ее, чтобы найти кнопку, чтобы побудить вас посмотреть на нее). Если вы сделаете свое сообщение ясным и продемонстрируете, что вы потратили на это время, ваши шансы на получение хороших ответов повысятся.