【问题标题】:Is it possible to click "OK" on an invisible pop up frame in selenium? python是否可以在 selenium 中的不可见弹出框上单击“确定”? Python
【发布时间】:2015-07-14 16:06:33
【问题描述】:

我需要在弹出窗口中点击“确定”才能登录 costar.com。

当框架弹出时,它会冻结窗口的其余部分,并且不允许我查看开发人员工具来查看元素。

看了源码,发现是个不可见的框架。

如果您想亲眼看看: - 去 costar.com - 点击登录 -点击登录按钮

你会看到我所说的隐形框架的类型。使用chrome搜索源码,搜索“invisible”或“certificate”可以找到不可见的框架信息。

是否可以与该框架进行交互?

感谢您的帮助。

【问题讨论】:

  • 我没有看到任何弹出窗口。您是在谈论未提供凭据时的警报吗?
  • @Madhan 是的,那个警报。当我插入正确的凭据时,它与弹出的警报样式相同,只是它让我可以选择单击“确定”。
  • 如果没有提供凭据,您将如何与警报交互?

标签: python selenium frame invisible


【解决方案1】:

你得到的是alert

您必须切换到警报并接受它

alert = driver.switch_to_alert()
alert.accept()

【讨论】:

  • 我试过了,但什么也没发生。警报是不可见的,所以我不知道如何切换到它。 (selenium 看不到它的存在)
【解决方案2】:

也可以试试:

driver.switch_to_frame("frame")

或者类似的东西

driver.switch_to_window(driver.window_handles[-1])

【讨论】:

  • 出于某种原因,似乎没有任何效果。在打开新页面之前,似乎 selenium 无法检测到 ajax 中有部分停止。警报导致整个帧冻结,这使我无法检查元素。搜索框架或窗口时也会超时。
  • 看起来他们的网站“故意”阻止了 webdriver 技术。根据您的需要,可能会有更好的方法,例如jmeter,在 http(传输)层上工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 2017-08-14
相关资源
最近更新 更多