机械化找不到表格
Mechanize can't find form
我在访问我正在使用的页面上的表单元素时遇到一些问题 Mechanize.
username_page = agent.get 'https://member.carefirst.com/mos/#/home'
username_form = username_page.form_with(name: 'soloLoginForm')
username_form
是 nil
。 (username_page
确实有页面)。页面肯定有表单,字段是#soloLoginForm,但是username_page.body
没有表单元素。
我猜这是一些异步或动态问题。我可以用 poltergeist 获取表格,我正在研究用 capybara/poltergeist 填写我的所有表格,但我想知道是否有一些简单的东西让我可以使用机械化,因为我计划好了。
似乎'https://member.carefirst.com/mos/#/home' uses Angular 来呈现页面的元素,AngularJS 需要浏览器中的 Javascript 支持,或者在你的情况下,水豚需要一个带有 [=20 的驱动程序=]支持
Mechanize 不支持 Javascript,请检查旧的 SO thread。这可能就是当您尝试使用 poltergeist 时它起作用的原因。
正如@hernanvicente 的回答所述,该页面正在使用 Angular 并且需要 JS(机械化不支持)。但是,现在您真的很想将 selenium 与 headless Chrome 一起使用,而不是 Poltergeist。 Poltergeist 相当于大约 7 年前的 Safari 版本(由于它用于渲染的 PhantomJS 已被废弃),因此它不支持现代站点中使用的大量 JS 和 CSS。将 Selenium 与 Chrome 一起使用的另一个优点是,您可以轻松地在无头和有头之间切换,以查看在需要调试时发生了什么。
我在访问我正在使用的页面上的表单元素时遇到一些问题 Mechanize.
username_page = agent.get 'https://member.carefirst.com/mos/#/home'
username_form = username_page.form_with(name: 'soloLoginForm')
username_form
是 nil
。 (username_page
确实有页面)。页面肯定有表单,字段是#soloLoginForm,但是username_page.body
没有表单元素。
我猜这是一些异步或动态问题。我可以用 poltergeist 获取表格,我正在研究用 capybara/poltergeist 填写我的所有表格,但我想知道是否有一些简单的东西让我可以使用机械化,因为我计划好了。
似乎'https://member.carefirst.com/mos/#/home' uses Angular 来呈现页面的元素,AngularJS 需要浏览器中的 Javascript 支持,或者在你的情况下,水豚需要一个带有 [=20 的驱动程序=]支持
Mechanize 不支持 Javascript,请检查旧的 SO thread。这可能就是当您尝试使用 poltergeist 时它起作用的原因。
正如@hernanvicente 的回答所述,该页面正在使用 Angular 并且需要 JS(机械化不支持)。但是,现在您真的很想将 selenium 与 headless Chrome 一起使用,而不是 Poltergeist。 Poltergeist 相当于大约 7 年前的 Safari 版本(由于它用于渲染的 PhantomJS 已被废弃),因此它不支持现代站点中使用的大量 JS 和 CSS。将 Selenium 与 Chrome 一起使用的另一个优点是,您可以轻松地在无头和有头之间切换,以查看在需要调试时发生了什么。