我正在尝试通过 splinter 从模式的下拉列表中选择一些东西。我找到这个下拉列表没有问题,例如:
(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/fxdriver@googlecode.com/components/command-processor.js:9587)
at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmp6tSmOc/extensions/fxdriver@googlecode.com/components/command-processor.js:12257)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp6tSmOc/extensions/fxdriver@googlecode.com/components/command-processor.js:12274)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp6tSmOc/extensions/fxdriver@googlecode.com/components/command-processor.js:12279)
at DelayedCommand.prototype.execute/< (file:///tmp/tmp6tSmOc/extensions/fxdriver@googlecode.com/components/command-processor.js:12221)
(Pdb) dropdown.visible
True // what???
(Pdb)
我很确定 select 的论点是正确的,所以我不知道这里发生了什么。
如果所有其他方法都失败了,我可以用 xpaths 做一些聪明的事情吗?还是我需要尝试以另一种方式查找/与元素交互?
HTML情况的部分截图:http: //pasteboard.co/1I30ljRl.png