2015-10-26 76 views
0

我正在尝试从此html中删除此文本 == “1532.6788418669355” 。但是,没有任何我尝试似乎工作。 以下是我尝试:如何使用Selenium Webdriver在此HTML内获取此文本?

  1. IList的选项= Driver.FindElements(By.XPath( “.//跨度// *”)); 选项[0]。文本= “” 这里没有其他有用的性质
  2. Driver.FindElements(By.XPath( “// B”)); 以及这里没有文字和仅1项返回
  3. Driver.FindElements(By.XPath( “// DIV [@类= 'highcharts-提示'] /跨度”)) 计数= 1 否文字在此元素或者

<div class="highcharts-tooltip" style="position: absolute; left: 83px; top: 15px; visibility: hidden;"> 
 
    <span id="ext-gen1350" style="position: absolute; white-space: nowrap; font-family: " Lucida Grande ","Lucida Sans Unicode 
 
    ",Verdana,Arial,Helvetica,sans-serif; font-size: 12px; color: rgb(51, 51, 51); margin-left: 0px; margin-top: 0px; left: 8px; top: 8px;" zindex="1"> 
 
<span style="color:#000000">Index</span> 
 
    <br/> 
 
    <b>< 600</b> 
 
    1532.6788418669355 
 
    </span> 
 
</div>

这里是我TRIE其他的东西d得到一些反馈后。所有这些或者返回空或元素未发现异常:

var options = Driver.FindElements(By.XPath(“// div [@ class ='highcharts-tooltip'] // following :: span”)) ; (“.text”)()。GetAttribute(“textContent”);方法如下: ();}}。GetAttribute(“textContent”);}}。GetDocument(“textContent”); ();}}。GetAttribute(“textContent”);}}。GetDocument(“textContent”); (“textContent”);}}。GetAttribute(“textContent”);}}。GetAttribute(“textContent”); ());}}。GetAttribute(“text”);}}。GetAttribute(“text”);

var a = Driver.FindElement(By.XPath(“// * [@ class ='highcharts-tooltip']/span/text()”));此xpath完美工作在Firebug中,但未使用Webdriver ...

// var b = Driver.FindElements(By.XPath(“// * [@ class ='highcharts-tooltip']/span/text ()“));

回答

1

好了,所以首先你共享

  1. HTML有visibility:hidden的,所以你不会是能够看到它在浏览器上
  2. 跨度ID:看起来由ExtJS的框架自动生成,所以你应该不要使用它,否则会在下次运行中破坏。
  3. 在谷歌浏览器控制台中试试这个。 $ X( “// DIV [@类= 'highcharts-提示'] //以下::跨度/文本()”)[3]

它的工作原理,但令人惊讶返回5文本元素,避难所” t尝试使用硒。 只是做到这一点。

driver.findElement(by.xpath( “// DIV [@类= 'highcharts-提示'] //以下::跨度”)。gettext的()和尝试。

希望这会帮助,让我知道,如果作品。

感谢, 和Manish邦萨尔 http://www.softtechlabs.com/blog

+0

感谢您的帮助!但是,这并不适用于我,因为C#没有getText()方法。并使用.Text让我“”。 –

2

因为您正在试图访问的WebElement是隐藏的,则getText()方法返回一个空字符串。

另外,您尝试检索的文本没有ID或标记,因此我们必须检索父文本。

Driver.FindElement(By.CssSelector(".highcharts-tooltip")).GetAttribute("textContent"); 

会给你,

Index 

    < 600 
    1532.6788418669355 

您需要从以上检索你的价值。

+0

GetAttribute(“textContent”);.为我工作! –

相关问题