我正在尝试检索此文本
== “1532.6788418669355”
从这个HTML。但是,我尝试的任何东西似乎都没有用
以下是我的尝试:
<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>
以下是我在收到一些反馈后尝试的其他事项。所有这些都返回空或元素未找到异常:
var options = Driver.FindElements(By.XPath("//div[@class='highcharts-tooltip']//following::span"));
var x = Driver.FindElement(By.CssSelector(".highcharts-tooltip")).GetAttribute("textContent");
//var y = Driver.FindElement(By.XPath("//*[@class='highcharts-tooltip']//b")).GetAttribute("textContent");
var z = Driver.FindElement(By.XPath("//*[@class='highcharts-tooltip']//span")).GetAttribute("textContent");
z = Driver.FindElement(By.XPath("//*[@class='highcharts-tooltip']/span")).GetAttribute("textContent");
z = Driver.FindElement(By.XPath("//*[@class='highcharts-tooltip']/span")).GetAttribute("text");
**var a = Driver.FindElement(By.XPath("//*[@class='highcharts-tooltip']/span/text()"));** this xpath works in Firebug perfectly, but not using Webdriver...
//var b = Driver.FindElements(By.XPath("//*[@class='highcharts-tooltip']/span/text()"));
答案 0 :(得分:2)
由于您尝试访问的WebElement是隐藏的,getText()
方法返回一个空字符串。
您尝试检索的文本也没有ID或标记,因此我们必须检索父文本。
Driver.FindElement(By.CssSelector(".highcharts-tooltip")).GetAttribute("textContent");
会给你,
Index
< 600
1532.6788418669355
您需要从上方检索您的值。
答案 1 :(得分:1)
好的,首先,
它工作但令人惊讶地返回5个文本元素,没有尝试过使用selenium。 就这样做
driver.findElement(by.xpath(“// div [@ class ='highcharts-tooltip'] // follow :: span”)。getText()并尝试。
希望这会有所帮助,让我知道是否有效。
谢谢, Manish Bansal http://www.softtechlabs.com/blog