【问题标题】:FindElement by Xpath is not working for "add New" buttonXpath 的 FindElement 不适用于“添加新”按钮
【发布时间】:2014-07-10 09:28:33
【问题描述】:
<a class="add-new pull-right" href="javascript:void(0);">

    <span class="add-new-icon omedia-plus-circled"></span>

     Add New

</a>

代码是用于“添加新”按钮的。

添加新按钮的 xpath 是:

/x:html/x:body/x:nav[2]/x:div/x:div[2]/x:div/x:a

我试过这段代码:

wd.findElement(By.xpath("//a[contains(@href,\"javascript:void[0]\")]")).click();

但它不起作用。 你能帮我解决这个问题吗..

【问题讨论】:

    标签: java button selenium xpath click


    【解决方案1】:

    怎么样:

    wd.findElement(By.xpath("//a[contains(@href,\"javascript:void(0)\")]")).click();
                                                                 ^ ^
                                                                 Notice the use of 
                                                                 brackets
    

    【讨论】:

    • 真的很难看到你刚刚将[0] 更改为(0) ^^ 你应该使用一些强字体** **
    • ** ** 在代码块中不会更改为 strong,但添加了注释 :)
    • wd.findElement(By.xpath("//a[contains(@href,\"javascript:void(0)\")]")).click();不会抛出任何错误,但它似乎没有做这项工作
    【解决方案2】:

    为什么不使用类名?

    wd.findElement(By.className("add-new")).click();

    一般来说,您应该注意的一件事是,与使用 CSS 选择器相比,xpath 表达式被认为是识别元素的最差方法,尤其是当您在 IE 中进行测试时,因为 xpath 实现不是原生的,而且非常慢的。我建议阅读 http://saucelabs.com/resources/selenium/css-selectors 以简要了解一些示例,并且还可能在 http://saucelabs.com/resources/selenium/selenium-xpath-marks-the-spot 范围内查看使用 xpath 的一些负面影响。

    【讨论】:

      【解决方案3】:

      你应该用这个内文分隔 2 个按钮。试试

      //a[contains(@class, 'add-new') and contains(., 'Add New')]
      

      用于“添加新”按钮。并且:

      //a[contains(@class, 'add-new') and contains(., 'Add New Campaign')]
      

      用于“添加新广告系列”按钮。

      【讨论】:

      • 在您的帮助下,尝试了上述方法,但似乎抛出错误。线程“main” org.openqa.selenium.NoSuchElementException 中的异常:无法找到元素:{“method”:“xpath”,“selector”:“//a[contains(@class, 'add-new')]” } 命令持续时间或超时:14 毫秒
      • 其实有2个步骤:1)在此之后点击添加新按钮 2)点击添加营地按钮.. 对于添加营地,HTML如下 添加新活动 那么有没有办法通过名称来识别按钮”添加新的广告系列”和“添加新的..
      • 你应该用这个内文分隔 2 个按钮。尝试//a[contains(@class, 'add-new') and contains(., 'Add New')] 获取“添加新”按钮。 //a[contains(@class, 'add-new') and contains(., 'Add New Campaign')] 用于“添加新广告系列”按钮
      • 线程“main”中的异常 org.openqa.selenium.NoSuchElementException: 无法定位元素:{"method":"xpath","selector":"//a[contains(@class, 'add-new') 和 contains(., 'Add New')]"} 命令持续时间或超时:26 毫秒有关此错误的文档,请访问:seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'2.42.2',修订版: '6a6995d', time: '2014-06-03 17:42:30' 是我尝试这个时出现的错误
      猜你喜欢
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2014-07-28
      • 2023-03-23
      • 2015-09-17
      • 1970-01-01
      相关资源
      最近更新 更多