java:Selenium Webdriver:如何从具有样式的元素中获取文本' display:none'

时间:2014-09-18 07:10:59

标签: java selenium xpath hiddenfield

我有一个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检查它运行正常但是使用selenium它给出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());

&#34;折扣价格&#34;是悬停显示促销文本的webelement 但上面也给出了NoSuchElementException。 现在我如何从中获取文字。

2 个答案:

答案 0 :(得分:0)

不确定它是否有帮助,但在该div上使用.getAttribute("style"),您将得到值为String!

答案 1 :(得分:0)

在我的情况下,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;
    }