【问题标题】:Select last option in drop menu or count number of options in drop menu for ui vision rpa kantu selenium katalon recorder选择下拉菜单中的最后一个选项或计算 ui vision rpa kantu selenium katalon 记录器的下拉菜单中的选项数
【发布时间】:2021-03-30 03:41:24
【问题描述】:

我有这个下拉菜单

        <select name='sidebar-2_position'>
        <option value=''>&mdash; Seleziona &mdash;</option>
        <option value='1'> 1 </option>
        <option value='2'> 2 </option>
        <option value='3'> 3 </option>
        <option value='4'> 4 </option>
        <option value='5' selected='selected'> 5 </option>
        <option value='6'> 6 </option>
        </select>

我需要在下拉菜单中选择最后一项(在我的情况下为 6),但我不知道下拉菜单中的项目数,因为总是在变化。

我很想知道我可以为这个功能使用什么样的 xpath。

我使用基于 selenium xpaths 的 ui vision rpa kantu。

我可以使用这个 xpath (index=1, index=2, index=3) 选择第一个元素

    {
      "Command": "select",
      "Target": "xpath=//select[@name='sidebar-2_position']",
      "Value": "index=1"
    }

如何在不知道下拉菜单中的项目数的情况下选择下拉菜单中的最后一项?

如果我能知道下拉菜单上的项目数,我就能解决我的问题。

我需要解决这个问题:

-) 在不知道选项数量的情况下选择最后一个选项的 xpath

  1. javascript 在我的下拉菜单中包含元素的数量,并在通过 index=N 检测到它之后

【问题讨论】:

  • document.getElementById("yourSelectId").length 应该给你选项的数量
  • 我有 id 但我有名字
  • 如果没有其他同名元素,getElementsByName('sidebar-2_position')[0] 应该可以工作。或者,如果您的页面中只有一个选项,您可以使用 querySelector('select')
  • 在带有 executesctipt 的 ui vision rpa 上显示“executeScript_Sandbox 代码中的错误:document.getElementByName 不是函数”我认为需要返回命令才能从 javascript 中获取值
  • 有一个...是元素,不是元素

标签: javascript selenium xpath rpa katalon-recorder


【解决方案1】:

我不确定我是否 100% 清楚您的要求,但请尝试使用此方法查找最后一个 &lt;option&gt; 节点,而无需知道有多少:

const targets = document.evaluate('//select//option[last()]/@value', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
console.log(targets.snapshotItem(0).value)

输出:

"6"

【讨论】:

  • 我在 ui vision ui.vision/rpa/docs/selenium-ide/executescript 中尝试过并显示错误,我如何使用您的代码?我只需要 xpath 而不是其他不受支持的命令。谢谢
  • @cicoria xpath 在答案中://select//option[last()]/@value
  • 你的回复报告了一个错误的xpath命令,好像不是selenium xpath这个。在katalon记录器中尝试并显示日志,请您的命令中的另一个问题是错过了xpath来检测正确的选择。
猜你喜欢
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2021-04-02
  • 1970-01-01
  • 2022-01-23
  • 2020-05-14
  • 1970-01-01
相关资源
最近更新 更多