我无法自动点击按钮

时间:2017-09-02 11:21:40

标签: ruby-on-rails ruby ruby-on-rails-4 selenium-webdriver cucumber

使用Chrome:60.0.3112.101 64位,ChromeDriver 2.29.461571,selenium-webdriver:3.4和黄瓜2.4。我正在执行测试自动化,我在ubuntu 16.04中使用Ruby语言和webdriver和黄瓜框架。我无法自动点击按钮。为什么会发生这种情况?还是我忘记了什么?我使用以下代码。任何帮助表示赞赏。

Quando(/ ^ clicarobobão“([^”] *)“$ /)do | botaoSalvar | @navegador.find_element(:id,botaoSalvar).click 端

  E clicar o botão "SAVE"                                 
# features/step_definitions/criarConta.rb:92
      unknown error: Element <input title="Save" accesskey="a" class="button primary" 
onclick="var _form = document.getElementById('EditView'); 
    _form.action.value='Save'; if(check_form('EditView'))
SUGAR.ajaxUI.submitForm(_form);return false;" type="submit" name="button" 
value="Save" id="SAVE"> is not clickable at point (287, 20). 

其他元素会收到点击:

<a href="#" id="grouptab_1" class="dropdown-toggle grouptab" data-toggle="dropdown">...</a>
                        (Session info: chrome=60.0.3112.101)
                (Driver info: chromedriver=2.29.461571 

(8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.10.0-33-generic x86_64) 
(Selenium::WebDriver::Error::UnknownError)
          ./features/step_definitions/criarConta.rb:93:in `/^clicar o botão "([^"]*)"$/'
          features/criarConta.feature:30:in `E clicar o botão "SAVE"'
        Então a conta será cadastrada corretamente              
 # features/criarConta.feature:31

失败的场景: 黄瓜特色/ criarConta.feature:7#Cenário:Cadastrando uma conta

2 个答案:

答案 0 :(得分:1)

我有时会遇到这样的情况,即水豚驱动程序会以不同于实际浏览器的方式呈现页面,导致元素被其他人遮挡或在视口外呈现。

在这些情况下,对它们调用.click会导致像这样的错误。您是否尝试将.click替换为.trigger("click")?这通常对我有用。

答案 1 :(得分:0)

我没有成功

Quando(/ ^ clicarobobão“([^”] )“$ /)do | botaoSave |   @ navegador.find_elements(:xpath,“//[@id='SAVE']").trigger("click”) 端

E clicar o botão "SAVE"                                  # features/step_definitions/criarConta.rb:92
      undefined method `trigger' for #<Array:0x00000002bb1730> (NoMethodError)
      ./features/step_definitions/criarConta.rb:93:in `/^clicar o botão "([^"]*)"$/'
      features/criarConta.feature:30:in `E clicar o botão "SAVE"'
    Então a conta será cadastrada corretamente               # features/criarConta.feature:31

Failing Scenarios:
cucumber features/criarConta.feature:7 # Cenário: Cadastrando uma conta