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!