【发布时间】:2015-07-26 12:11:17
【问题描述】:
我正在使用 watir 对应用程序执行自动化测试,并在选择选择列表的选项并填写表单后尝试单击提交按钮。但是单击按钮时,它会引发 element not found 错误
按钮标签的html sn-p
<button type="submit" class="md-primary md-raised md-button md-default-
theme" ng-transclude=""><span class="ng-binding
ng-scope">Submit</span><div style="" class="md-ripple-container">
</div>
</button>
红宝石脚本
require "watir"
require "watir-webdriver"
browser = Watir::Browser.new :firefox
browser.goto 'https://54.69.254.137/webui#/landing'
browser.driver.manage.window.maximize
browser.button(:class =>'sign-in md-button md-default-theme').click
browser.text_field(:id =>'input_001').set('abcadmin@example.com')
browser.text_field(:id =>'input_002').set('password')
browser.button(:class =>'md-primary md-raised md-button md-default-
theme').click
browser.input(:id =>'input_002').when_present.click
browser.element(aria_label:'What do you want to do?').when_present.click
browser.element(:id =>'select_option_00G').when_present.click
browser.element(aria_label:'About what?').when_present.click
browser.element(:id =>'select_option_00P').when_present.click
browser.textarea(:id =>'input_00N').when_present.set('Discuss about
javascript and later test the application??')
browser.button(:class =>'md-primary md-raised md-button md-default-
theme').click
它会抛出以下错误
Selenium::WebDriver::Error::ElementNotVisibleError: Element is not
currently visible and so may not be interacted with
我尝试过使用
browser.button(:class =>'md-primary md-raised md-button md-default-
theme').when_present.click
,但它会抛出超时错误。无法纠正错误。请帮助!!
【问题讨论】:
-
异常表示元素已找到但不可见。你能看到元素吗?您也可能定位错误的元素。例如,如果页面上有多个提交按钮,第一个是隐藏的,而你试图点击第二个,就会出现这个异常。
-
span 元素正在覆盖/设置按钮元素的样式。只需点击跨度
-
与@Justin Ko 所说的相呼应,
class不能保证是唯一的。尽管我尽可能避免使用它,但这可能是使用 XPath 定位元素的一种情况。即browser.button(:xpath => '<xpath here>').click。这应该没有问题(您可以使用 Chrome 开发人员工具轻松获取 XPath。或者,如果只有一个提交按钮,您可以尝试browser.span(:text, 'Submit').click。 -
嗨!!!! browser.span(:text, 'Submit').click, 工作....谢谢大家...
标签: angularjs watir watir-webdriver