【问题标题】:How can I select the 6th option in the list?如何选择列表中的第 6 个选项?
【发布时间】:2011-12-25 23:28:25
【问题描述】:
<div id="suggestionlist">
<ol id="suggestionroot">
<li id="sugg_1">
<li id="sugg_2">
<li id="sugg_3">
<li id="sugg_4">
<li id="sugg_5">
<li id="sugg_6">
<li id="sugg_7">
<li id="sugg_8">
<li id="sugg_9">
<li id="sugg_10">

我有一个正在尝试自动化的搜索前瞻功能。我每次都尝试在列表中选择第 6 个选项,但我似乎无法找到它!这是我最近的,但它不工作..

@Browser.div(:id, "suggestionlist").link(:index, 6).click

【问题讨论】:

  • @Browser 用于 Ruby 中的变量名?真的?!你也应该阅读 Ruby。
  • 为了平衡所有批评,这是一个很好的问题。你已经提供了我需要回答的一切。
  • 趁女孩倒下的时候射杀她,你为什么不呢!
  • 如果我粗鲁,我很抱歉。我说这是个好问题。我注意到您没有足够的 HTML 和 Ruby 知识。如果您需要有关阅读内容的建议,请告诉我。
  • 谢谢。我对自动化还很陌生,没有接受过培训,只是边学习边学习

标签: ruby watir


【解决方案1】:

您应该阅读一些有关 HTML 的内容。 &lt;li&gt; 标签不是链接,&lt;a&gt; 标签是链接。

所以,点击&lt;li id="sugg_6"&gt;试试这个:

browser.li(:id => "sugg_6").click

单击列表项内的链接(未显示在 HTML 中,但在 cmets 中引用)

browser.li(:id => "sugg_6").link.click

(假设您要单击 LI 内的第一个/唯一链接,否则您可能需要指定索引值)

【讨论】:

  • not working 数据不足。发生了什么或没有发生什么?你期望会发生什么?也许您需要做的就是触发一个 javascript 事件:stackoverflow.com/questions/3787555/…
  • 我已经触发了这个事件:@Browser.text_field(:name, "searchTerms").fire_event('onkeydown')
  • 它只是跳过该行并继续进行其余的测试,我希望它点击第 6 条建议
  • 也许你需要触发一些其他的事件。看看我在之前的评论中链接的问题。你能和网站的开发者谈谈吗?他们可能会知道单击列表项需要发生什么。
  • 已排序! @Browser.div(:id, "suggestionlist").li(:index, 7).link(:index, 1).click
【解决方案2】:

您是否尝试通过 XPath 访问此元素?

browser.find_elements_by_xpath("div[@id='suggestionlist'/li[6]").click

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 1970-01-01
    • 2014-06-20
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多