【问题标题】:Unable to find an element (Selenium, Java)找不到元素(Selenium、Java)
【发布时间】:2019-04-03 02:36:14
【问题描述】:

我正在尝试以下元素:

<span data-dojo-attach-point="lN" role="btn" aria-selected="false" class="xTreeNLbl">Find</span>

以下是Java代码:

private WebElement search_btn = driver.findElement(By.xpath("//div[@data-dojo-attach-point='lN' and contains(text(),'Find')"));
search_btn.click();

找不到元素。请帮忙。谢谢。

【问题讨论】:

  • Xpath=//span[text()='Find'] 使用这个 xpath
  • 我猜data-dojo-attach-point="lN" 在每次刷新时都会发生变化。你能确认一下吗?

标签: java selenium selenium-webdriver


【解决方案1】:

您的 xpath 几乎是正确的,您只需要使用 Span 更正标签名称

driver.findElement(By.xpath("//span[@data-dojo-attach-point='lN' and contains(text(),'Find')"));

【讨论】:

    【解决方案2】:

    请尝试以下代码:
    //span[@role='btn' and @class='xTreeNLbl']

    如果这段代码不能解决你的错误,把页面的html dom代码传给我,我会帮忙的。

    【讨论】:

      【解决方案3】:

      一种选择可能是尝试使用它的一个属性来查找元素,如果它是唯一的,就像它的类一样。 取自上一个问题(Find element by attribute),公式为:

      element[attribute='attribute-value']

      如果你有,

      &lt;a href="mysite.com"&gt;&lt;/a&gt;

      您可以通过以下方式找到它:

      By.cssSelector("a[href='mysite.com']");

      【讨论】:

        【解决方案4】:

        你在 xpath 上错了//div
        因为这是&lt;span&gt; 标签而不是&lt;div&gt; 标签 你应该这样写,

        driver.findElement(By.xpath("*//span[text()='Find']")).click();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-17
          • 1970-01-01
          • 1970-01-01
          • 2019-01-02
          • 2021-03-14
          相关资源
          最近更新 更多