【问题标题】:How can I locate element by 'className1' or 'className2'? [duplicate]如何通过“className1”或“className2”定位元素? [复制]
【发布时间】:2018-12-31 22:45:18
【问题描述】:

所以,在我的项目中,我所有的定位器都是枚举的元素,看起来像:

如果它是一个 css 定位器 - DIV_LOCATION("css=div.location-text.text-overflow")。它解析字符串,如果以 css= 开头,它知道它是一个 css 定位器。

如果是 xpath 定位器 - DIV_HEADER_GRP_TITLE("//*[contains(@class,'conversation-title')]//div")

我想编写通用 css 定位器来定位这两个元素:<div class = 'conv-title'>...</div><div class = 'conversation-title'>...</div>

我该怎么做?

定位器必须以css=开头

【问题讨论】:

  • 到目前为止你尝试过什么?在 StackOverflow 上显示至少需要为解决问题付出最少的努力。
  • 是什么阻止您重命名类以使它们相同 - 如果它们是相同的元素,则使用相同的类,毕竟,这就是类的用途 - 在相似元素之间共享相同的样式
  • @Pete,我无法访问 html。
  • 哈哈哈当今世界上有太多“Web 开发人员”无法访问他们的 html!很奇怪
  • @pete,我完全不是网络开发人员......但是自动化工程师。

标签: css selenium css-selectors


【解决方案1】:

上述元素的CSS, 假设元素类型为输入

css = 输入[class*="conv"]

它将使用包含 'conv' 的类进行搜索

【讨论】:

    【解决方案2】:

    cssSelector 有或,

    By.cssSelector(".conversation-title, .conv-title")
    

    【讨论】:

    • 嗨。你能告诉我们,在css选择器中捐赠了什么吗?我知道. 用于上课,但, 用于关节,就像我们在 xpath 中有 and 一样?
    • @cruisepandey 这是或者,我在我的回答中写道。
    • 感谢您的信息。我没有太注意解释。
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 2019-08-08
    • 2013-05-05
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多