2017-06-13 43 views
0

我需要从这个标签硒对span标记的webdriver得到的数据绑定值

<span> 
    <a class="jsk-sa-dialog link-lightbox-valores" data-bind="attr: { href: '#sa-valor-' + $root.types().id }" href="#sa-valor-2"> 
    Link to click that pop-ups a new window 
    </a> 
</span> 

获得的价值看在调试器中的“HTML”代码后,我看到了我想要得到的文本成HTML ... 要获得生成到弹出窗口中的文字,我写了这个代码:

case "someBaseText":  
{ 
    details.Click(); // Simulate the click on <a> tag 
    var tx = details.FindElement(By.XPath("//div[@class='overview-material']")); 
    var dv = tx.FindElement(By.XPath("//div[@class='sa-valor']/h3")); 
    var ttText = dv.Text; // Empty :(
} 

,我从调试器得到的HTML:

<div class="overview-material"> 
<div class="valores" data-bind="foreach: $root.types"> 
<div class="sa-valor" data-bind="attr: { id: 'sa-valor-' + id }" id="sa-valor-2"> 
<h3 class="titulo">Mensalidade</h3> 
<div class="texto" data-bind="html: apresentacao.valor"> 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 

所以,我想要得到的div类中的文本 “texto”

回答

0

基于对dv中的XPath,你所得到的<h3>元素:

<h3 class="titulo">Mensalidade</h3> 

因此dv.Text应该返回"Mensalidade"


尝试更新的XPath的<div>class='texto'

//div[@class='sa-valor']/div[@class='texto'] 
0

尝试CssSelector:

var text = driver.FindElement(By.CssSelector("div.texto")).Text;