Нужно подсчитать количество вакансий на странице, например, Специалист по тестированию.
Я получал лист WebElements, в котором хранятся заголовки всех вакансий, а потом через паттерн прогонял на совпадение. Если совпадает, то счетчик +.
На хроме работает хорошо, все считает и никаких проблем нет. На mozilla ff столкнулся с тем, что берет текст с куском юникода с сайта и, соответстввенно, в регулярке не находит совпадение. Конечно, можно поставить юникод в то место, где он есть, но я выяснил, что место, в котором он появляется, рандомно. примерно такого формата текст.
В таком формате приходит текст из ff в idea. https://image.prntscr.com/image/vXg43l2LRn_9W0B7wrPEEg.png
Как можно обойти этот юникод? Вариантов решения не нашел:)
List vacansies = driver.findElements(By.xpath(“//a[contains(@class,‘search-result-item__name search-result-item__name’)]”));
int i = 0;
for (WebElement x : vac) {
System.out.println(x.getText());
Matcher m = Pattern.compile(regex).matcher(x.getText());
if (m.find()) {
i++;
}
}
Тогда стоит реплейсить все юникодовские элементы, а то вдруг завтра выскочит что-то другое…
Хотя я бы попробовала понять почему эти символы вообще появляются…
Вот стоит почитать: Символы Юникода, управляющие форматом (категория Cf), такие как RIGHT-TO-LEFT MARK (\u200F) и LEFT-TO-RIGHT MARK (\u200E), управляют визуальным представлением текста, в котором они присутствуют. Они имеют большое значение для корректного отображения текста на некоторых языках и являются допустимыми в комментариях JavaScript, строковых литералах и в литералах регулярных выражений, но не в идентификаторах (таких как имена переменных), определяемых в программах JavaScript.