【发布时间】:2014-10-29 06:03:51
【问题描述】:
我有一个 Watir 代码,它使用 Phantomjs 作为无头浏览器。我正在尝试使用此代码在网站上填写表格(因为 Phantomjs 在简单点击时不显示模态(browser.link(id: 'choise-sity').click)):
require 'watir'
browser = Watir::Browser.new :phantomjs
browser.goto 'http://sales.ubrr.ru/open'
browser.execute_script(" $('#modalCityChoise').show();$('#modalCityChoise').css({'opacity':'1', 'top':'0'})")
browser.link(text: 'Архангельск').click
browser.screenshot.save 'a.png'
当前代码确实显示模式,但之后我无法点击那里的链接。
我的问题是:有没有更简单的方法来处理 PhantomJS 中的模态 - 他们说他们增加了对模态的支持?或者如何通过javascript注入来处理这个特定的例子?
编辑:我设法通过更改隐藏输入 browser.execute_script(" $('#OpenBkiForm_city_code').val('4600000100000') ") 的值来处理这种模式 - 但问题仍然存在。
【问题讨论】:
-
点击应该有效。您可能必须等到模式可见/不可见。顺便说一句,这些是模态而不是弹出窗口。有关 CasperJS 的示例,请参阅 this。不要忘记将视口大小设置为类似桌面的东西。
-
@ArtjomB.,哦!你是对的,如果我等待一段时间,它会打开很好:-) 我认为点击不同的链接后它不需要一些时间。
标签: javascript forms modal-dialog phantomjs watir