Есть ли способ найти конкретный текст и выделить его - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь найти текст и выделить его, но он выдает ошибку: нет такого элемента: невозможно найти.

Я использую логическое значение, тогда я нашел текст, но я не знаю, как выделить его в селене.

myD.getPageSource().contains("Power of Selenium WebDriver with ");
boolean Error = myD.getPageSource().contains("frequent test steps as KEYWORDS");

        if (Error == true)
        {
         System.out.print("Text Found");

        //   highLightElement();

        }
        else
        {
         System.out.print("Text not Found");
        }

Другое дело, я использую WebElement, но он выдает ошибку, такого элемента не найдено

    driver.get("https://anyaut.com/");
    WebElement matchedElement=driver.findElement(By.xpath("//*[contains(text(),'frequent test steps as KEYWORDS')]"));
    highLightElement(matchedElement);

HighlightElement:

public static void highLightElement(WebElement element){
    JavascriptExecutor js = (JavascriptExecutor)driver;   
    js.executeScript("arguments[0].setAttribute('style','background: yellow; border: 2px solid red;');", element);   
}

1 Ответ

0 голосов
/ 10 мая 2019

При просмотре сайта https://anyaut.com/ существует следующая конструкция:

<p class="green-border-inner-content">Built using <font color="#34d293">Page Object, Data Driven &amp; Keyword Driven
    Automation Frameworks</font>. Has the facility to group frequent test steps as KEYWORDS , along with reusable Test
    Data and Element Identifiers.</p>

Это означает, что есть 2 текста узлов , и ваше выражение учитывается только в первую очередь.один, то есть Built using

Чтобы извлечь текст frequent test steps as KEYWORDS, необходимо предоставить предикат position , например:

//p[contains(text()[2],'frequent test steps as KEYWORDS')]

Или, еслиВы хотите использовать подстановочный знак . Вы должны изменить свое выражение так:

//*[text()[contains(.,'frequent test steps as KEYWORDS')]]

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...