【问题标题】:How can i find the cssselector for the following error message我如何找到以下错误消息的 cssselector
【发布时间】:2013-10-15 05:53:51
【问题描述】:

我正在使用 selenium Web 驱动程序测试注册流程。我有一个输入电子邮件 ID 的字段,该字段不应与用户的电子邮件 ID(已注册的用户)相同。代码如下所述。我需要获取 cssselector。

<em for="coworkeremail" class="error">Your co-worker's email must be different than yours</em>

谢谢 Java初学者

【问题讨论】:

  • 我会试试".error""em.error"
  • 两个都试了,出现断言错误
  • 您要查找的元素是在框架内还是在 iframe 内?
  • 文本在框架内
  • 您需要使用driver.SwitchTo().Frame("frameIdentifier");,其中frameIdentifier 理想情况下是框架的名称或ID。

标签: selenium css-selectors


【解决方案1】:

在那个类上匹配有点粗略,特别是如果还有更多。 error 是一个非常通用的类,所以我会说匹配 for 属性。

em.error[for='coworkeremail']

编辑

正如您在 cmets 中所说,您的元素位于框架中。找到那个frame的ID或者Name,然后执行,

driver.switchTo().frame("idOrName"); // assuming you are using Selenium 2 and Java

然后找到元素。

【讨论】:

    【解决方案2】:

    考虑到你只有一个带有class = error的元素

    .error 是 CSS 选择器。

    【讨论】:

    • 分享你的断言代码,你还在等待错误信息出现吗?
    • org.openqa.selenium.NoSuchElementException: 无法定位元素:{"method":"css selector","selector":"em.error"} 命令持续时间或超时:23 毫秒跨度>
    • 您是否在等待错误元素出现,然后再执行断言...?
    • 是的。在执行断言之前,我正在等待错误消息。感谢您的文档,将尝试检查是否有效。谢谢@Amey
    猜你喜欢
    • 2020-06-12
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多