【发布时间】:2013-06-25 20:12:56
【问题描述】:
我正在尝试使用 watir-webdriver 从选择列表中选择一个选项。
watir-webdriver gem 版本:0.6.4 mac osx lion 上的 Ruby 1.9.3
选择列表的HTML:
<select id="cc.expiryMonth" name="cc.expiryMonth">
<option value="0">Month</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
我使用的代码是
@browser.select_list(:name => "cc.expiryMonth").options[4].select
我遇到错误
Element is not currently visible and so may not be interacted with (Selenium::WebDriver::Error::ElementNotVisibleError)
[remote server] file:///var/folders/_c/j__zdvw93gqgyyvzwmmgtwwr0000gn/T/webdriver-profile20130620-1023-1s8kag6/extensions/fxdriver@googlecode.com/components/command_processor.js:7736:in `fxdriver.preconditions.visible'
[remote server] file:///var/folders/_c/j__zdvw93gqgyyvzwmmgtwwr0000gn/T/webdriver-profile20130620-1023-1s8kag6/extensions/fxdriver@googlecode.com/components/command_processor.js:10437:in `DelayedCommand.prototype.checkPreconditions_'
[remote server] file:///var/folders/_c/j__zdvw93gqgyyvzwmmgtwwr0000gn/T/webdriver-profile20130620-1023-1s8kag6/extensions/fxdriver@googlecode.com/components/command_processor.js:10456:in `DelayedCommand.prototype.executeInternal_/h'
[remote server] file:///var/folders/_c/j__zdvw93gqgyyvzwmmgtwwr0000gn/T/webdriver-profile20130620-1023-1s8kag6/extensions/fxdriver@googlecode.com/components/command_processor.js:10461:in `DelayedCommand.prototype.executeInternal_'
[remote server] file:///var/folders/_c/j__zdvw93gqgyyvzwmmgtwwr0000gn/T/webdriver-profile20130620-1023-1s8kag6/extensions/fxdriver@googlecode.com/components/command_processor.js:10401:in `DelayedCommand.prototype.execute/<'
./features/step_definitions/Wotif_FlightSearch_DOM_steps.rb:145:in `/^I enter all details on booking page$/'
浏览了gem库中的watir-webdriver代码,用尽了所有选择选项的方法,都抛出了同样的错误。
@browser.select_list(:name => "cc.expiryMonth").focus
成功,但选择选项会引发元素不可见错误。 也尝试了 send_keys 失败。 希望有任何关于如何处理这个问题的建议
更新:
@browser.select_list(:name => "cc.expiryMonth").options[8].value
返回值但是
@browser.select_list(:name => "cc.expiryMonth").options[8].select
或
@browser.select_list(:name => "cc.expiryMonth").select @browser.select_list(:name => "cc.expiryMonth").options[8].value returns element not found error
【问题讨论】:
-
选择元素是否始终可见,或者您是否必须执行操作才能使选择元素可见?您尝试的 html 示例和代码可以自行运行,因此导致失败的页面还有其他问题。
-
它位于屏幕底部,webdriver 正在向下滚动并成功设置其他 select_lists .....
标签: selenium-webdriver watir-webdriver