【问题标题】:R - Rselenium - navigate drop down menu / list / box using = 'id'R - Rselenium - 使用 = 'id' 导航下拉菜单/列表/框
【发布时间】:2017-02-04 10:11:24
【问题描述】:

如何通过“using = 'id'”(例如,remDr$findElement(using='id', value="main_ddYear")

我可以使用findElement 找到并单击。单击后,如果我知道我的目标选择有多少个箭头,我可以发送“向下箭头”键(击键)和“输入”。

页面源示例

<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 在 Java 中使用了一个“选择”类,我在 quick start tutorialdocumentation 中没有找到它的引用。

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

【问题讨论】:

    标签: r xpath drop-down-menu rselenium


    【解决方案1】:

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

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

    XPath 简介:

    • //select[@id='main_ddYear'] :在 HTML 中的任意位置查找 &lt;select&gt; 元素,其中 id 属性值等于 'main_ddYear'
    • /option[@value = '2014'] :从这样的&lt;select&gt; 元素返回子&lt;option&gt;,其中value 属性值等于'2014'

    【讨论】:

    • 这是最简单的方法(定位并单击相应的选项)。您可以使用 css 选择器作为替代 remDr$findElement("css", "#main_ddYear option[value='2014']")
    • 两者都有效。我使用了 css 选择器,所以@jdharrison 的评论非常有用。两个问题:1)早期的研究让我关注 css 选择器与 xpath。你们都同意这个吗? 2) 我发现了我认为使用 css 选择器的良好网络资源,但没有找到 jdharrison 对语法/技术的参考。你能推荐一个权威的参考。如果这是常用技术,可能我的搜索条件很差。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多