Selenium 定位 JS 网页弹窗时。driver.switch_to ().alert () 和 driver.switchTo ().alert () 方法都出问题了,求解答?

phoenix · 2018年04月23日 · 最后由 phoenix 回复于 2018年04月24日 · 3705 次阅读

在定位 JS 网页弹窗时:
1、直接使用 driver.switch_to().alert(),会弹'SwitchTo' object is not callable
2、所以百度了下,需要使用 driver.switchTo().alert(),但是仍然会提示'WebDriver' object has no attribute 'switchTo'
3、于是有又百度了下,网上还有中用法 chrome.switch_to.alert.accept() 也是不行的😰

我的环境是 python3.6.3 + selenium3.7.0

请问是因为版本导致方法有所改动吗?

方法一:

方法二:

最佳回复
# self.driver.switch_to_alert()
self.driver.switch_to_alert().accept()
return True

py3.5.4 selenium 3.3.1 正常哇

共收到 4 条回复 时间 点赞

Usage:
alert = driver.switch_to.alert

Jerry li 回复

试了下,不行额😰

# self.driver.switch_to_alert()
self.driver.switch_to_alert().accept()
return True

py3.5.4 selenium 3.3.1 正常哇

皆非 回复

多谢,验证了下是对的。总结一下:
1) selenium3.7.0 中 switch_to_alert() 方法虽然被 “画了横杠”,但是可以正常使用!本人的确被唬住了😰
2)获取弹窗内容的正确方法是 alert.text,而不是网上百度到的 alert.getText()😰
3)至于确定和取消的方法就和网上的一样了,分别是:
alert.accept()
alert.dismiss()

phoenix 关闭了讨论 04月28日 14:34
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册