【问题标题】:Selenium python javascript popupSelenium python javascript弹出窗口
【发布时间】:2014-07-29 18:41:06
【问题描述】:

我在 Python 中使用 Selenium 导航到网站并填写表格。有一段代码让您单击一个按钮以使用 javascript 打开一个弹出节点树。我可以使用以下代码单击按钮:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Ie("C:\\IEDriverServer.exe")
driver.get('htto://someurl.com')
popup = driver.find_element_by_xpath('//a[@onclick and @href = "javascript:;" and img/@alt = "Node Tree"]')
popup.click()
driver.switch_to.alert

此时,网站上的所有内容在弹出框和实际网站上都变得不可点击。这是什么原因造成的?不幸的是,我无法共享 Javascript,因为它是我公司内部的。

【问题讨论】:

  • 你试过driver.switch_to.alert吗?
  • @alecxe 我刚刚将该行添加到原始帖子中。当我尝试点击任何东西时,我仍然会看到黑色圆圈,线条穿过它(这意味着我无法点击任何东西)。我不确定为什么通过 Selenium 单击该按钮与手动单击它有何不同。这也不是一个真正的弹出窗口,因为它不是一个单独的窗口。

标签: javascript python selenium selenium-webdriver


【解决方案1】:

而不是 switch_to.alert,drv.switch_to_alert() 怎么样 其中 drv 是您的驱动程序实例。

我在 python 源代码中看不到任何通过 grepping 看起来像 switch_to 的东西是显而易见的。支持语法。

我会发表评论,但我没有这样做的声誉。

【讨论】:

  • 运气不好。 PyCharm 实际上推荐了这个开关。