【问题标题】:xpath locator not work as expected to locate a "<a" element with compound class namexpath 定位器无法按预期工作以定位具有复合类名称的“<an”元素
【发布时间】:2017-12-31 22:20:17
【问题描述】:

这条线不起作用,但我认为我使用了正确的 xpath?

driver.findElement(By.xpath("//a[contains(@class,'cke_button_bold')]")).click();

找到如下按钮:

<a id="cke_73" class="cke_off cke_button_bold">

id 是一个动态数字,因此可以在这里用作固定定位器。而class是一个复合类,WebDriver的findElement方法不支持...

【问题讨论】:

  • 对不起,我应该附上目标元素的所有内容。它确实有一个 href 属性

标签: xpath selenium webdriver


【解决方案1】:

我创建了简单的 html 文件,您的 xpath 在 WebDriver 2.1.0 中与 FirefoxDriver 一起使用。
你也可以尝试使用

driver.findElement(By.className("cke_button_bold"))

webdriver Api支持类名

【讨论】:

    【解决方案2】:

    第 1 步:

    找到 CSS 选择器

    这里可能的 CSS 选择器:

    css=a[id*='cke']

    css=.cke_off cke_button_bold

    上面可以使用或者我们已经有了.ClassName方法但是为了避免重复元素和歧义我们可以使用CSS选择器。

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2019-12-10
      相关资源
      最近更新 更多