我有下面的html代码。我想使用Ruby机械化,选择特定文本的下拉元素(我想点击它)。中国的例子。我的问题是怎么做?我在机械方面是新手。
<form class="form-inline search search-large" action="/translate" method="get">
<input id="q" name="q" type="text" placeholder="Search" class="input-large" value="" autofocus="autofocus" data-pons-redirect-input="true" data-pons-autofocus="true" autocomplete="off">
<div class="btn-group source open" data-pons-lang="de">
<button class="btn btn-large dropdown-toggle" data-toggle="dropdown">
<span class="text">Chinese</span>
<i class="icon-angle-down"></i>
</button>
<ul class="dropdown-menu">
<li>
<a href="#" class="language">
<span class="text">Chinese</span>
<span class="flag flag_zh"></span>
</a>
</li>
<li>
<a href="#" class="language">
<span class="text">Elvish</span>
<span class="flag flag_lb"></span>
</a>
</li>
</ul>
</div>
</form>发布于 2014-09-09 12:44:28
坏消息
据我所见,您的示例页面太复杂了,不能让机械化的接口使用例如.click方法。实际上,它将能够跟随链接(""),但我想这不会对你有多大帮助,因为它似乎有一些javascript或其他黑魔法涉及。
您可以首先尝试通过禁用浏览器中的JavaScript来查看页面是否能够很好地工作(而不是保证)。
好消息
无论如何,最终您会想要机械化地执行某些类型的HTTP请求--不管是否由JS触发,这都无关紧要。您将能够使用机械化(尽管它不一定是所有场景的最佳选择)。
提示
我鼓励您使用浏览器开发人员的东西(通常通过按F12来激发),看看实际发生了什么,例如哪种表单是用哪个值提交的。而且,不要忘记在与javascript一起使用和不使用JavaScript时检查它是否相同(据我所知,机械化不会执行JavaScript)。
此外,在开发机械化代码时,请使用irb或其他像pry这样的repl来实时测试您的代码。您的机器代理或页面将有一个方法保存或save_as或类似的方法,您可以随时保存当前页并在浏览器或喜爱的文本编辑器中查看它。记住,irb中的_给出了您的最后一个返回值。
https://stackoverflow.com/questions/25743073
复制相似问题