繁体   English   中英

为什么在chrome中右键单击后send_keys无法工作,例如,firefox可以吗?

[英]why send_keys can't work after right click in chrome and ie, but firefox is fine?

我想用右键单击和alt + y复制页面中的图像,并按照以下代码在firefox中工作良好,但使用chrome和ie。 所以我无法从剪贴板中获取图像。

require 'watir-webdriver'
b = Watir::Browser.new :chrome
b.goto('www.baidu.com')
b.img(:src=>"http://www.baidu.com/img/baidu_sylogo1.gif").right_click
b.send_keys ("{alt}y")

并遵循代码可以很好地工作

require 'watir-webdriver'
b = Watir::Browser.new :chrome
b.goto('www.baidu.com')
b.send_keys :tab

这可以很好地工作

当您执行b.send_keys ("{alt}y") ,您只是在输入字母{,a,l等。

尝试以下方法:

b.send_keys([:alt, 'y'])

Watir和Watir-Webdriver为send_keys使用不同的输入-请参见此处

注意:我没有以此测试您的完整脚本。 老实说,我不知道如何使用alt + y将图像手动复制到剪贴板。

这将有助于您了解为什么要保存图像。 屏幕快照会起作用吗? 如果可以,请尝试以下操作:

b.driver.save_screenshot "#{Time.now.to_i}.png"

不要浪费任何时间尝试使验证自动化,例如Captcha (完全自动化的公用Turing测试以告诉计算机和人类分开)或旨在阻止自动化的其他身份验证系统。 是的,虽然可以做到,但实际上可以参加军备竞赛或在风车旁倾斜。 更重要的是,它没有为您的雇主带来任何价值。

围绕验证码或验证码自动执行的正确方法是配置测试环境,以使代码可预测。 许多验证码工具或验证工具可以在设置了响应的“测试”模式下运行。 您永远不会以这种方式配置生产环境,但是您可以(并且应该)以这种方式轻松配置测试环境。

与设置和控制测试环境的人们交谈。 他们只需要一些知道测试环境的逻辑,然后对验证码或授权工具(例如Google Authorizer或每5分钟吐出数字的小部件)使用正确的api调用,即可将其置于测试模式,以便使用可预测的验证响应。

这是我正在谈论的示例: http : //captcha.biz/doc/aspnet/api/captcha-configuration-reference.html#BotDetect.Configuration.ITestModeConfiguration

如果您使用的设备不支持此功能,则可以将系统配置为完全跳过验证码,也可以将其配置为指向您创建的一些测试存根(而不是真实的验证码系统)。 这将是您或开发人员创建的一小段代码,它们使用与真实验证码相同的api,但始终希望得到相同的答案。 在这种情况下,所有内容的行为都与在与真实的验证码服务进行通信时完全相同,但是与之交谈的小桩代码始终会以相同的“答案”发送相同的图像,例如“测试”

这种情况对于测试环境是很正常的,在该环境中,各种第三方物品被禁用,进入测试模式或连接到测试沙箱(例如,验证码,广告,网站分析,跟踪像素,信用卡授权服务)等)

根据前面的评论之一,听起来您最终只需要一种保存图像的方法。 我认为将其复制到剪贴板实际上并不重要。

因此,您可以在Watir-Webdriver中进行所有导航,然后切换到其他Ruby宝石之一(例如Open-URI或Net-Http)来下载图像。

以下是使用Open-URI的示例:

require 'watir-webdriver'
require "open-uri"

save_file = 'C:\Documents and Settings\Setup\Desktop\image.png'

b = Watir::Browser.new :chrome
b.goto('www.baidu.com')
image_location = b.img.src

File.open(save_file, 'wb') do |fo|
  fo.write open(image_location).read
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM