Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ruby中发送多次击键?_Ruby_Selenium Webdriver_Automation_Selenium Chromedriver_Capybara - Fatal编程技术网

如何在ruby中发送多次击键?

如何在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']

我试图在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']


    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协议直接发送到浏览器。它们不会像直接在键盘上击键那样被操作系统路由和处理(活动窗口、操作系统击键快捷键等)