在为此寻找解决方案的过程中,我想我可能在Capybara(v1.1.2)中发现了一个错误。
我设法解决了这个问题,使用下面的方法,而不是使用水豚click
(这不会让我捕获一个例外),我开始使用selenium-webdriver的click
方法。
看来,当Firefox的触发此alertbox,与消息
虽然这个页面被加密的字符串,您所输入的信息是 通过未加密的连接发送,并可以很容易地通过读取 第三方
返回作为object.native.click
结果,否则串
ok
被返回。
# Define the click method in ruby and call it when you're executing a 'click'
# Public: Click the object.
#
# object - Capybara::Node::Element object to click.
def click object
return_string = object.native.click
check_firefox_alertbox if return_string == "ok"
end
def check_firefox_alertbox
if @current_browser == :firefox
@session.driver.browser.switch_to.alert.accept
end
rescue Exception => e
puts e
end
您是否在Windows上运行?如果是这样,你会对可以调用的外部脚本感兴趣吗?我有一些经过很好测试的,但我想我会检查你的开放。 – chrismead 2012-07-26 21:04:06
hey chris,我正在运行Linux和OS X.尽管如此,如果他们是解决这个问题的硒脚本,他们可能会给我一些关于如何解决这个问题的线索。谢谢 – bruno077 2012-07-26 21:06:24
我的脚本是windows脚本宿主脚本。你有没有尝试禁用TLS 1.0?如果禁用TLS不起作用,我将添加一个描述脚本的答案。找出如何让他们工作是一件很痛苦的事,但他们很简单。我也看到人们在硒中讨论了一些WaitForPopup方法,但是当我看到这些时,我已经写了自己的方法。 – chrismead 2012-07-26 21:19:34