如何在ruby中发送多次击键?
我试图在ruby自动化中发送击键,我不知道如何将其放入我的代码中,我想发送(Alt+Space+X)以最大化我的窗口 有人能帮我吗如何在ruby中发送多次击键?,ruby,selenium-webdriver,automation,selenium-chromedriver,capybara,Ruby,Selenium Webdriver,Automation,Selenium Chromedriver,Capybara,我试图在ruby自动化中发送击键,我不知道如何将其放入我的代码中,我想发送(Alt+Space+X)以最大化我的窗口 有人能帮我吗 When("que eu realize login no SIAF com usuário e senha") do |table| wsh.SendKeys("%{VK 32}{VK 88}") @usuario = table.rows_hash['usuario'] @senha = table.rows_hash['senha']
When("que eu realize login no SIAF com usuário e senha") do |table|
wsh.SendKeys("%{VK 32}{VK 88}")
@usuario = table.rows_hash['usuario']
@senha = table.rows_hash['senha']
login.load
login.log(@usuario,@senha)
end
我希望通过Alt+Space+X命令将窗口最大化,但什么也没发生
我的“env.rb”是这样使用的:
require 'capybara'
require 'capybara/dsl'
require 'capybara/rspec/matchers'
require 'selenium-webdriver'
require 'site_prism'
require 'rspec'
require_relative 'page_helper.rb'
World(Capybara::DSL)
World(Capybara::RSpecMatchers)
World(Pages)
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
mange.window.maximize
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(
'chromeOptions' => {'args' => ['--disable-infobars',
'window-size=1600,1024'] }
)
)
end
我可以将“Drive.manageage.window.maximize”放在哪里?您发送的密钥会发送到浏览器,而不是操作系统,因此不能保证触发系统操作。要最大化窗口,您最好
page.current_window.maximize
欢迎来到SO。请花点时间阅读和阅读。它将帮助你设计出可靠的问题,希望能得到有用的答案。查看文档以了解更多信息。您应该能够执行类似于
element.send\u键:alt、:space、“X”
的操作。或者只是使用。祝你好运有一个标准代码可以最大化窗口,为什么必须按keysHi Marquiiz!您的问题有点令人困惑,因为您将Windows脚本主机问题与selenium webdriver混为一谈。你想要哪一个?对于WSH部分,请注意实际使用的是ALT+SPACE,然后按x以最大化。所以只需调用send_keys两次。@Marquiiz还提供了一个关于代码示例的提示:最好将所有内容翻译成英语,以便大家都能理解。我真正想要的是最大限度地打开我的窗口,这就是你想要的,反正我已经通过了我的env.rb,因为我找不到在我的代码上使用他的答案的方法嗨,你能解释一下两者的区别吗?例如,driver.find_元素。单击
触发操作系统,但driver.action。单击(driver.find_元素)。执行
执行浏览器级别的单击?有什么区别?这两个都在调用click模块,呃?@Rajagopalan这两个模块都会触发浏览器级别的事件。没有办法通过webdriver保证操作系统级别的响应不,你说触发操作系统级别是有区别的,这是什么?这与从浏览器级别触发操作有何不同?@Rajagopalan我不明白你在问什么?发送的击键通过webdriver协议直接发送到浏览器。它们不会像直接在键盘上击键那样被操作系统路由和处理(活动窗口、操作系统击键快捷键等)