【问题标题】:Selenium: access element using span class nameSelenium:使用跨度类名称访问元素
【发布时间】:2017-12-01 11:52:34
【问题描述】:

我有这个很复杂的xpath

/html/body/div/div/div[2]/div/div/div/div[3]/div/table[1]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr[1]/td/div/div/table/tbody[1]/tr[3]/td[2]/div/table/tbody/tr/td/table/tbody/tr/td[1]/span/input

span 有这个class="z-combobox-designation z-combobox"

我需要使用 class 访问 span 元素,而不是通过 xpathcssSelector 可以吗?有人可以给我一个提示吗?

【问题讨论】:

    标签: selenium xpath css-selectors classname


    【解决方案1】:

    是的,您可以通过这种方式使用 css 选择器来根据复合类选择您的元素

    driver.findElement(By.cssSelector(".z-combobox-designation.z-combobox"));
    

    或使用span.z-combobox-designation.z-combobox等类指定标签名称

    如果您的 HTML 中有多个相同类型的元素,则考虑它的唯一父级并找到相同的元素

    例如您的元素的父 table 具有唯一 ID,例如因此您可以考虑该表标签并根据该表定位span,例如

    table#someid span.z-combobox-designation.z-combobox
    

    【讨论】:

    • 我认为它有效,它没有导致任何错误。谢谢!顺便说一句,要访问带空格的类,您使用 dot(.) 代替。真的是这样处理有空格的类吗?
    • 实际上,如果您在 classname 中看到空格,则 classame 的名称中没有任何空格,这意味着有多个由空格分隔的类。在您的元素 class="z-combobox-designation z-combobox" 中有 2 个类 1 = z-combobox-designation 和 2 = z-combobox in css 选择器 dot(.) 用于定义它的类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2019-01-13
    • 1970-01-01
    • 2018-04-12
    • 2011-12-28
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多