Я пытаюсь выбрать что-то из выпадающего списка в модальном окне с помощью осколка. У меня нет проблем с поиском этого раскрывающегося списка, например. :
(Pdb) dropdown = next(i for i in my_browser.find_by_xpath('//select[@name="existing.widgets.user:list"]') if i.visible)
(страница, с которой я имею дело, на самом деле имеет несколько одинаковых модальных окон, поэтому мне нужно получить текущий видимый. Вздох..)
Выпадающий список можно нажать:
(Pdb) dropdown.visible
True
(Pdb) dropdown.click() //succeeds and displays menu
(Pdb)
... но попытка выбрать его не удалась, хотя он якобы виден!
(Pdb) dropdown.select('my_val')
*** ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
Stacktrace:
at fxdriver.preconditions.visible (file:///tmp/tmp6tSmOc/extensions/[email protected]/components/command-processor.js:9587)
at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmp6tSmOc/extensions/[email protected]/components/command-processor.js:12257)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp6tSmOc/extensions/[email protected]/components/command-processor.js:12274)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp6tSmOc/extensions/[email protected]/components/command-processor.js:12279)
at DelayedCommand.prototype.execute/< (file:///tmp/tmp6tSmOc/extensions/[email protected]/components/command-processor.js:12221)
(Pdb) dropdown.visible
True // what???
(Pdb)
Я почти уверен, что аргумент для выбора верен, поэтому я не понимаю, что здесь происходит.
Если ничего не помогает, могу ли я сделать что-то умное с xpaths? Или мне нужно попытаться найти/взаимодействовать с элементом другим способом?
Частичный скриншот ситуации с HTML: http://pasteboard.co/1I30ljRl.png
dropdown.select(value='my_val')
вместо этого? - person alecxe   schedule 11.03.2015