当前位置: 首页 > 面试题库 >

如何使用Selenium WebDriver单击列表中的特定元素?

澹台新知
2023-03-14
问题内容
  1. 我有一个名字来自Excel工作表
  2. 具有此特定名称的元素列表,我需要单击此元素,这是我的代码:
        for(WebElement li : myElements) 
    {
         System.out.println(li.getText());
         System.out.println();

         for (int i=0; i<Name.length(); i++)
         {
            if(li.getText().equalsIgnoreCase(Name[i]))
            {
               System.out.println("Matched");
              //myElements.get(2).click();
            }
          }
    }

这是我的html代码:

       <div style="margin-right:30px;" class="rlbGroup rlbGroupRight">
            <ul class="rlbList">
                <li class="rlbItem rlbHovered" id="radListBoxSource_i0">
                    <span class="rlbText">Apex</span></li><li class="rlbItem" id="radListBoxSource_i1">
                    <span class="rlbText">ARC</span></li><li class="rlbItem" id="radListBoxSource_i2">
                    <span class="rlbText">Buckeye</span></li><li class="rlbItem" id="radListBoxSource_i3">
                    <span class="rlbText">Citgo</span>
                </li>
        <li class="rlbItem" id="radListBoxSource_i4">
           <span class="rlbText">Colonial</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i5">
           <span class="rlbText">KMEP North</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i6">
           <span class="rlbText">KMEP South</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i7">
            <span class="rlbText">KMEP West</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i8">
            <span class="rlbText">Magellan</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i9">
            <span class="rlbText">Magellan East</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i10">
            <span class="rlbText">Magellan West</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i11">
            <span class="rlbText">Marathon</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i12">
            <span class="rlbText">Marathon East</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i13">
            <span class="rlbText">Motiva</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i14">
            <span class="rlbText">Motiva Shell</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i15">
            <span class="rlbText">Motiva South</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i16">
            <span class="rlbText">TPSI</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i17">
            <span class="rlbText">TPSI East</span>
        </li>
        <li class="rlbItem" id="radListBoxSource_i18">
            <span class="rlbText">Vecenergy</span>
        </li>
        </ul>
       </div>

这个名称从excel表格中以’Motiva’的形式出现。

谁能帮我解决这个问题?


问题答案:

事情就这样了:假设您的myElements将如下所示:

    List<WebElement> myElements =driver.findElements(By.cssSelector("li[class*='rlbItem']"));

    for(WebElement li : myElements) 
    {
         System.out.println(li.getText());
         System.out.println();

         for (int i=0; i<Name.length(); i++)
         {
            if(li.getText().equalsIgnoreCase(Name[i]))
            {
                //Clicks on the matched webelement    
                li.click();
            }
          }
    }


 类似资料:
  • 问题内容: 我的页面上有一个canvas元素,我想单击此画布中的特定(x,y)坐标。我使用watir-webdriver: 但是此代码仅单击画布的中心,而不单击指定的(x,y)坐标。怎么了 UPD:所以现在我使用以下代码: 但是它仍然单击画布的中心,而不单击指定的(x,y)坐标…有什么想法吗? UPD 2:这仅是FIREFOX问题(在Chrome中运行良好) 问题答案: 运动 移动到指定元素的中心

  • 问题内容: 我有以下HTML: 我下面的单击“ Google搜索”按钮的代码在WebDriver中使用Java时效果很好。 我想将JavaScript与WebDriver一起使用以单击按钮。我该怎么做? 问题答案: 通过JavaScript执行点击具有一些您应该注意的行为。例如,如果绑定到元素事件的代码调用,则可能会发现Selenium代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 有一个由一个人和订单组成的数据帧... 我想知道顾客的主食是什么。因此,我想添加另一列[main_-mean],这将是我的df。 规则是,如果一个顾客点了4份或更多的餐,这意味着第4个元素永远是主菜,所以我想从订单栏上的列表中提取第4个元素。如果它包含少于4个元素,则将main_meal分配给无。我的代码: 它不起作用: 我的代码有什么问题?

  • 问题内容: 我的页面上有两个元素(两个“取消”元素)。 如何单击第二个元素?显然,我无法获得ID,因为它是在每次访问时随机生成的。我可以使用什么? 问题答案: 1.使用FindElements方法,该方法使用给定的机制查找当前上下文内的所有IWebElement。(在这种情况下,您始终需要知道要查找的元素的索引。) 2.如果这些取消按钮位于不同的部分,则可以通过非ExtJS id属性进行标识。 3

  • 我想分解一个URL并提取我需要的信息。破坏URL很容易,但我不确定如何提取我需要的信息。 下面是URL中断部分。我想提取目标id部分并将其保存在dest_id中。在下面的示例URL中,它将是“1504033”(在“destination id=”旁边) 我知道如何通过索引号码呼叫,但它可能不会一直工作,因为该部分可以在任何地方而不是第5个索引。(可以是第三个或第四个)