【问题标题】:Selenium CSS locator space in locator定位器中的 Selenium CSS 定位器空间
【发布时间】:2010-09-08 16:23:14
【问题描述】:

我知道 selenium 可以使用 css 定位器。

我知道语法是这样的:

xpath=//div[@id,'topLeft')//span[contains(@class,'name')]
或者 css=#topLeft .name

现在,如果 .name 是这样的: //span[contains(@class,'name with space')]

那么它会失败......如何寻找一个有空间的定位器?

谢谢!

编辑 解决方案:css=span.name.with.space

【问题讨论】:

    标签: selenium


    【解决方案1】:

    类名不能有空格。但是,您可以通过在它们之间放置一个空格来为单个元素定义 多个 类。查看id and class identifiers section in the HTML spec 了解更多信息。

    您应该能够通过仅使用其中一个类来使用 CSS 定位器。

    如果这不起作用,请使用Firefinder for FireBug 之类的工具仔细检查您的 CSS 选择器。我能够将 Selenium-IDE 与具有两个类的元素一起使用。对于 HTML

    <div class="c1 c2">
        <span class"s1">Test</span>
    </div>
    

    我使用了选择器

    css=div.c1 span
    

    【讨论】:

    • 是的。对我公司的类名称如下的开发人员说:按钮 AddComment IntegrationButton。
    • 我并不是说不能有空格。我要指出的是,这些并不都是一类。这些是个别课程。如果您想用选择器识别一个,只需选择一个类。
    • 现在我是个笨蛋……我从没想过一个元素可以有多个类?该死的……我每天都学到新东西。 :) 这意味着如果我看到这样的类名:“按钮提交者”...该元素具有按钮类某类和提交者类?如果我搜索按钮类,那么也会找到这个?
    • 但是如果单独有更多的 c1 和 c2 但只有一个元素具有展位类怎么办?我需要那个元素?
    • 我可以简单地使用 + 来添加类名。谢谢。 :)
    【解决方案2】:

    使用 CSS 比使用长 xpath 更容易:

    span.class1.class2

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多