【发布时间】:2012-10-08 10:39:15
【问题描述】:
需要帮助
我正在从该网站抓取数据,该表单包含三个相互连接的选择列表,如果选择第一个选择列表中的任何选项,则此函数称为 onchange="Javascript:submitForm2(); 并填充第二个选择列表.
随后,如果从第二个选择列表中选择了一个选项,则调用相同的 js 函数 onchange="Javascript:submitForm2();" 最后,此表单的两个提交按钮分别调用不同的 js 函数来填充结果。所以我查看了文档,但没有找到任何关于选择列表的信息。
三个相互连接的动态变化的选择列表
<select name="s1" onChange="Javascript:submitForm2();" style="width: 150px" width="150">
<select name="s2" onChange="Javascript:submitForm2();" style="width: 300px" width="300">
<select name="s3" style="width:300px" width="300">
并且表单有两个提交按钮
尝试使用这些代码this.click('select#s1 option[value="26"]'); this.debugHTML();
给我这个错误CasperError: Cannot dispatch click event on nonexistent selector: select#s1 option[value="26"]
我也试过document.querySelector('select[name="s1"]').setAttribute('value', "26");
这给了TypeError: 'null' is not an object (evaluating'document.querySelector('select[name="s1"]').setAttribute')
【问题讨论】:
-
为什么要尝试模仿某人使用表单的操作,只需使用 GET 或 POST 将值直接注入服务器。
-
完成。通过 capybara-webkit 的真棒
标签: javascript ruby web-scraping capybara casperjs