2017-04-12 55 views
0

我正试图检索嵌入div标签内的文本。部分html代码如下。我咨询了其他现有的答案,但标签成功定位,但文本返回为空字符串。我的目的是检索'div'标签之间的字符串为“您输入了无效的用户名或密码,请重试。 “无法检索div标签内部的文本,即使标识标识了

我用xpath

//div[@class='login-card js-login-card']/div[@role='alert']/div[2] 

我用css

.alert__heading.js-alert--error-text 

这仅取回标签名称为格,但文本为空字符串。 任何想法或更正?

<div class="login-card js-login-card"> 
    <div class="login-page__alert alert alert--error tt js-alert--error" role="alert"> 
    <div class="alert__icon"> 
     <div class="alert__heading js-alert--error-text">You entered an invalid username or password, please try again. </div> 
    </div> 
    <div id="cmePageWrapper" class="page-wrapper page-wrapper--card"> </div> 
+2

请问您可以显示您使用的commnad来获取文本吗? –

+0

列表 \t we = wd.findElements(By.xpath(“XPath”));然后 println(“message elements size,tag =”+ we.size()+“,”+ we.get(0).getTagName()); 我回来1和div,但没有文本字符串。 – PraNuta

+0

列表 \t we = wd.findElements(By.xpath(“XPath”)); (“message elements size,tag =”+ we.size()+“,”+ we.get(0).getTagName());然后使用 println 我回到值为'1'和'div',但没有文本字符串。 这意味着只有这样的'div'元素,但它无法检索它所包围的文本。 – PraNuta

回答

0

尝试以下的XPath,因为需要DIV标签DIV带班 'alert__icon' 的子节点:

//div[@class='login-card js-login-card']/div[@role='alert']/div[1]/div 

让我知道,如果你的作品。

+0

列表 \t we = wd.findElements(By.xpath(“XPath”)); (“message elements size,tag =”+ we.size()+“,”+ we.get(0).getTagName());然后使用 println 我回到值为'1'和'div',但没有文本字符串。 这意味着只有这样的'div'元素,但它无法检索它所包围的文本。 – PraNuta

+0

你确定,你用'xpath'作为'// div [@ class ='login-card js-login-card']/div [@ role ='alert']/div [1]/div'? – Mahipal

0

也许你想尝试这个

div[class*="error-text"] 

如果没有工作,尝试通过使用此

$$("div[class*="error-text"]").text() OR .val()/.html() 

好运执行JavaScript代码来获取的文字!

0

您可以使用包含xpath的东西,像// div [contains(@class,'error-text')],使用findelement将检索匹配条件的第一个元素。如果它仍然返回空白,这意味着该页面可能有多个符合条件的元素

+0

列表 \t we = wd.findElements(By.xpath(“XPath”)); 然后使用println(“message elements size,tag =”+ we.size()+“,”+ we.get(0).getTagName()); 我回到值为'1'和'div',但没有文本字符串。 这意味着只有这样的'div'元素,但它无法检索它所包围的文本。 – PraNuta

+0

以确保您使用的是元素。 getText()获取文本的权利?它会打印元素的内部文本。 –