R - Rselenium - 使用 = 'id' 导航下拉菜单/列表/框

R - Rselenium - navigate drop down menu / list / box using = 'id'

如何通过“using = 'id'”导航动态下拉列表(例如,remDr$findElement(using='id', value="main_ddYear") ?

我可以使用 findElement 找到并单击。单击后我可以发送 "down arrow" 键(击键)和 "enter" 如果我知道我的目标选择有多少箭头。

页面源代码示例

<select name="main$ddYear" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;main$ddYear\&#39;,\&#39;\&#39;)&#39;, 0)" id="main_ddYear" class="groupTextBox">
<option selected="selected" value="2017">2017</option>
<option value="2016">2016</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
</select>

我想做一些类似于 this post 中的解决方案,但使用 'id' 而不是 'xpath' 。我无法适应 xpath 解决方案。

Another solution in Java used a "Select" class which I did not find referenced in the quick start tutorial or documentation

我将post一个关于如何抓取选项/值下拉列表的单独问题。

只要对 XPath 有一点了解,针对您的情况调整使用 XPath 的链接解决方案应该很简单,例如:

option <- remDr$findElement(using = 'xpath', "//select[@id='main_ddYear']/option[@value='2014']")
option$clickElement()

关于XPath的简要说明:

  • //select[@id='main_ddYear'] : 在 HTML 中的任意位置查找 <select> 元素,其中 id 属性值等于 'main_ddYear'
  • /option[@value = '2014'] :从这样的 <select> 元素, return child <option> 其中 value 属性值等于 '2014'.