Java: Selenium Webdriver: как получить текст из элемента, который имеет стиль "display: none"

У меня есть webelement, который при наведении мыши отображает некоторый текст (это не всплывающая подсказка) HTML-код

<div class="total-discout-outer" style="display: block;">
   <div class="total-discout-show">
     <div class="discount-arrow-top"></div>
     <div style="line-height:12px;font-size:13px;"> Promo Applied: (-) Rs 2</div>
   </div>
</div>

Теперь, как только мышь немного перемещается здесь или там, текст исчезает HTML для него

<div class="total-discout-outer" style="display: none;">
   <div class="total-discout-show">
     <div class="discount-arrow-top"></div>
     <div style="line-height:12px;font-size:13px;"> Promo Applied: (-) Rs 2</div>
   </div>
</div>

я попытался сгенерировать xpath для него и проверил его с помощью XPathChecker, он работал нормально, но с селеном - исключение NoSuchElement

xpath, который я использовал,

 //div[contains(@style,'display: none')]//div[contains(text(),'Promo')]

я тоже пытался

    Actions builder = new Actions(driver);
    builder.moveToElement(driver.findElement(By.xpath("//div[@class='discounted-price']"))).build().perform();
    System.out.println(driver.findElement(By.className("total-discount-show")).getText());

"Цена со скидкой" - это webelement, который при наведении курсора показывает рекламный текст, но выше также дает NoSuchElementException. Теперь, как я могу получить текст из этого.

1 ответ

В моем случае код Js работает, пожалуйста, посмотрите

public static string GetValueFromele(IWebElement element, IWebDriver Driver)
    {
        IJavaScriptExecutor javaScriptExecutor = (IJavaScriptExecutor)Driver;
        string value = javaScriptExecutor.ExecuteScript("return arguments[0].innerHTML", element) as string;

        return value;
    }

Не уверен, что это поможет, но с .getAttribute("style") на этом div вы получите значение как String!

Другие вопросы по тегам