【问题标题】:Toggle the element - Selenium切换元素 - 硒
【发布时间】:2017-08-12 16:38:02
【问题描述】:

我正在与 Selenium 作斗争。

基本上我想点击以下元素来切换元素:

<div class="btn-group pull-right">
   <a class=" mr-2" aria-expanded="false" aria-haspopup="true" data-toggle="dropdown-ddd" href="javascript:void(0)" onclick="$(this).closest('.btn-group').toggleClass('open');"
     <svg class="">
         <use xlink:href="resources/icons/settings.svg#Layer_1" xmlns:xlink="http://www.w3.org/1999/xlink">
     </svg>
    </a>

它变为:

<div class="btn-group pull-right open”>
    <a class=" mr-2" aria-expanded="false" aria-haspopup="true" data-toggle="dropdown-ddd" href="javascript:void(0)" onclick="$(this).closest('.btn-group').toggleClass('open');">
      <a class=" mr-2" aria-expanded="false" aria-haspopup="true" data-toggle="dropdown-ddd" href="javascript:void(0)" onclick="$(this).closest('.btn-group').toggleClass('open');">
        <svg class="">  
           <use xlink:href="resources/icons/settings.svg#Layer_1" xmlns:xlink="http://www.w3.org/1999/xlink">
          </svg>
       </a>

我写的点击这个元素的方法:

WebElement dropDown = driver.findElement(By.xpath("//div[@class='btn-group.pull-right’]”));
dropDown.click();

但是,我遇到了一个异常:

没有这样的元素:无法找到元素:{"method":"xpath","selector":"//div[@class='btn-group.pull-right']"}

关于我为什么会收到此异常的任何建议?

【问题讨论】:

  • 分享网站链接或html源代码
  • //div[contains(@class, 'btn-group') and contains(@class, 'pull-right')] ?
  • onchange="$(this).closest('.btn-group').removeClass('open')"> 我的个人资料 注销
  • 如果您尝试单击由findElement(By.xpath("//div[@class='btn-group.pull-right’]”)); 返回的节点,只需在btn-group.pull-right 之后将 更改为' 即可。
  • 标签: selenium


    【解决方案1】:

    您可以在您的 xapth 中使用“或”逻辑运算符来定位两者。

    试试这个 Xpath :-By.xpath("//div[@class='btn-group.pull-right’|//div[@class='btn-group pull-right open’ "]

    【讨论】:

    • 我仍然收到以下错误:无效选择器:无法使用 xpath 表达式定位元素 //div[@class='btn-group.pull-right']|//div[ @class='btn-group.pull-right.open'] 因为以下错误:
    • 你能分享你的网址吗?
    • 网址被雇主屏蔽,如果在工作机器外使用,对不起!
    【解决方案2】:

    您的 html 显示元素具有类 "class="btn-group pull-right" " 和您的 xpath "By.xpath(" //div[@class='btn-group.pull-right']"" 如果我​​仔细观察它,您在 xpath 中添加点以删除使用时不需要的空间xpath,css 中的空格会被 dot 删除。所以尝试使用这个 xpath //div[@class='btn-group pull-right']

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签