【发布时间】:2016-11-11 13:13:13
【问题描述】:
我正在废弃一个使用 Java Applet 的网页。此小程序生成一个选择标记,我想单击其中一个选项。Selenium 在我运行时确实找到了该元素:
doc_select = Select(self.driver.find_element_by_class_name('selectClass'))
如果我检查doc_select,我会得到:
<selenium.webdriver.support.select.Select instance at 0xb5a486ec>
我可以看到驱动程序已经找到了调试器中的所有选项。
但是,如果我尝试使用以下选项选择一个选项:
doc_select.select_by_value('9501')
它抛出了异常:
{ElementNotVisibleException}消息:元素当前不可见 因此可能无法与之交互 堆栈跟踪: 在 fxdriver.preconditions.visible (file:///tmp/tmpmxvBee/extensions/fxdriver@googlecode.com/components/command-processor.js:10092) 在 DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmpmxvBee/extensions/fxdriver@googlecode.com/components/command-processor.js:12644) 在 DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpmxvBee/extensions/fxdriver@googlecode.com/components/command-processor.js:12661) 在 DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpmxvBee/extensions/fxdriver@googlecode.com/components/command-processor.js:12666) 在 DelayedCommand.prototype.execute/
有没有办法与Java Applet 生成的元素进行交互?如何使这些小程序元素对Selenium 可见? Selenium 有一些替代方案,我可以在其中自动化 Java Applets?
【问题讨论】:
-
异常说 selenium 找到了选择框,但由于可见性,它无法被选择...我认为这是一个 HTML 选择框...您应该尝试
Webdriverwait等到选择框可见...如果您有任何问题,请告诉我... -
@SaurabhGaur 我试图等待可见性,但没有成功。我在使用 iframe 时遇到了类似的问题,错误是一样的,我只需要将 selenium 切换到 frame。但是在这种情况下,我不能让 selenium 专注于 Java 小程序
-
你能分享你的网站网址吗??
-
@SaurabhGaur 我不能,因为它是一个司法系统网站,需要自定义证书才能登录,所以你将无法访问它
标签: python python-2.7 selenium web-scraping