我们正在使用此Google API https://developers.google.com/places/documentation/autocomplete,我希望自动化测试用例以选择特定地址。
<fieldset class="control-group">
<a class="button small grey search-again" style="display: none;" href="#"> Erneut versuchen </a>
<input class="address-search" type="text" data-required="true" placeholder="Geben Sie Ihre Adresse ein" autocomplete="off">
这是需要填写的文本字段。 我试过了
@address_page.address_line1 = line1
text_field(:address, :class => 'address-search')
但它只是打开建议列表而没有选择我在输入中给出的那个,我有这个错误
Element is not currently visible and so may not be interacted with (Selenium::WebDriver::Error::ElementNotVisibleError)
[remote server] file:///var/folders/zg/1303qv_56kjc0r43rpb9h0b40000gp/T/webdriver-profile20141020-26884-1it1xd2/extensions/fxdriver@googlecode.com/components/command_processor.js:10816:in `DelayedCommand.prototype.checkPreconditions_'
Ant建议如何解决这个问题?
答案 0 :(得分:1)
使用Google自动填充字段时,您需要:
以下是使用Google Maps JavaScript API v3示例页面的工作示例:
# Go to the page
browser = Watir::Browser.new
browser.goto('http://code.google.com/apis/maps/documentation/javascript/examples/places-autocomplete.html')
# For the test page, the places autocomplete is in an iframe
iframe = browser.div(id: 'gc-content').iframe
# Get the autocomplete field
autocomplete = iframe.text_field(id: 'pac-input')
# Type something into the autocomplete field
autocomplete.set('Aus')
# Wait for the list of suggestions to be displayed
suggestion_menu = iframe.div(class: 'pac-container')
suggestion_menu.wait_until_present
# Click one of the suggestions, in this case, we clicked the second suggestion
suggestion_menu.div(class: 'pac-item', index: 1).click
# Check that the autocomplete value is updated
p autocomplete.value
#=> "Australian Capital Territory, Australia"
请注意,您可能需要针对特定实现调整脚本。例如,文本字段id可能不是'pac-input'。但是,一般概念应适用于此和许多其他自动填充字段。