即使标识了标记,也无法检索div标记内的文本

时间:2017-04-12 20:39:03

标签: selenium xpath selenium-webdriver

我正在尝试检索div标签内嵌的文本。部分HTML代码如下。我咨询了其他现有的答案,但标签位置成功,但文本以空字符串的形式返回。我的目的是检索' div'之间的字符串。标记为"您输入的用户名或密码无效,请重试。"

我使用了xpath

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

我使用了css

  .alert__heading.js-alert--error-text

这只将标记名称作为div返回,但将文本作为空字符串返回。 任何想法或更正?

<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>

3 个答案:

答案 0 :(得分:0)

尝试关注 xpath ,因为必需的 div 标记是 div 的子节点,其中包含类&#39; alert__icon&#39;:< / p>

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

如果它对您有用,请告诉我。

答案 1 :(得分:0)

也许你想试试这个

div[class*="error-text"]

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

执行javascript代码来获取文本
$$( "div[class*="error-text"]" ).text()  OR  .val()/.html()
祝你好运!

答案 2 :(得分:0)

你可以使用包含xpath的东西,比如// div [contains(@class,'error-text')],使用findelement会检索符合条件的第一个元素。如果它仍然返回空,则表示该页面可能有多个符合条件的元素